2011-12-29 61 views
1

我有两个分支:分支-1:稳定分支,分支-2:开发分支。将同一个VOB中的Labeled Nodes从一个分支复制到另一个分支清除

Branch-2中有多个签入节点。在他们外面,周围的3个节点具有标签:L1,L2 L3 &:

x [Branch-1: Stable Branch (only one node)] 
\ 
    x - x - x (L1) - x - x(L2) - x (L3) - x - x 

[Branch-2: Dev Branch (several checked-in 
nodes), 3 nodes labelled with: L1, L2, L3 => I want to copy these 3 nodes 
to Branch-1] 

能否请您提供一个ClearCase命令来做到这一点?

谢谢。

最好的问候,

桑迪普·辛格

回答

0

首先你需要一个dynamic view

所以你定义更新Branch1动态视图(与-mkbranch Branch1结尾的选择规则,即:看“How to create a branch”您需要的三个选择规则)。

然后,你需要找到各相关版本L1并复制它们在当前视图的顶部,把不同的标签上有新版本Branch1create a L1B1 lbtype first,例如):
的Windows语法:

cleartool find . -ver "lbtype(LBL1)" \ 
-exec "cleartool co -c \"LBL1 import\" \"%CLEARCASE_PN%\" ; \ 
     cp \"%CLEARCASE_XPN%\" \"%CLEARCASE_PN%\" ; \ 
     cleartool ci -nc \"%CLEARCASE_PN%\" ; \ 
     cleartool mklabel –replace L1B1 \"%CLEARCASE_PN%\"" 

(在一行:cleartool find . -ver "lbtype(LBL1)" -exec "cleartool co -c \"LBL1 import\" \"%CLEARCASE_PN%\" ; cp \"%CLEARCASE_XPN%\" \"%CLEARCASE_PN%\" ; cleartool ci -nc \"%CLEARCASE_PN%\" ; cleartool mklabel –replace L1B1 \"%CLEARCASE_PN%\""

Unix的语法:

cleartool find . -ver "lbtype(LBL1)" \ 
-exec "cleartool co -c \"LBL1 import\" \"$CLEARCASE_PN\" ; \ 
     cp \"$CLEARCASE_XPN\" \"$CLEARCASE_PN\" ; \ 
     cleartool ci -nc \"$CLEARCASE_PN\"; \ 
     cleartool mklabel –replace L1B1 \"$CLEARCASE_PN\"" 

(一行:cleartool find . -ver "lbtype(LBL1)" -exec "cleartool co -c \"LBL1 import\" \"$CLEARCASE_PN\" ; cp \"$CLEARCASE_XPN\" \"$CLEARCASE_PN\" ; cleartool ci -nc \"$CLEARCASE_PN\"; cleartool mklabel –replace L1B1 \"$CLEARCASE_PN\""

CLEARCASE_XPN参考的全扩展的路径名,从动态视图访问,CLEARCASE_PN引用没有扩展路径的路径,即没有@@之后的部分。
环境变量由cleartool find命令设置,因此使用%...%$

重复,对于L2L3,你会得到的,对于一个给定的文件:

x - y (L1B1) - y (L2B1) - y (L3B1) [Branch-1: Stable Branch (only one node)] 
\ 
    x - x - x (L1) - x - x(L2) - x (L3) - x - x 
+0

非常感谢您的答复。但是,如果我有一个庞大的代码库,是否有任何方法可以在仅使用标签的帮助下做同样的事情,而不是单独处理单个文件? – 2011-12-29 13:44:46

+0

@SandeepSingh:请阅读http://stackoverflow.com/questions/645008/what-are-the-basic-clearcase-concepts-every-developer-should-know/645771#645771:ClearCase总是以文件为单位进行工作。但'cleartool find'可以帮助您为每个使用特定标签的版本应用一系列命令。所以你需要重复'cleartool find'命令,我只提到每个标签名称,而不是每个文件。它将检出,复制,签入并为每个已标记为“L1”的版本找到的文件应用一个新标签('L1B1')。所以在这方面,你会在标签的帮助下工作。 – VonC 2011-12-29 15:13:00

+0

非常感谢您的热心帮助。 – 2011-12-30 06:54:51

相关问题