首先你需要一个dynamic view:
所以你定义更新Branch1
动态视图(与-mkbranch Branch1
结尾的选择规则,即:看“How to create a branch”您需要的三个选择规则)。
然后,你需要找到各相关版本L1
并复制它们在当前视图的顶部,把不同的标签上有新版本Branch1
(create 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
命令设置,因此使用%...%
或$
。
重复,对于L2
和L3
,你会得到的,对于一个给定的文件:
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
非常感谢您的答复。但是,如果我有一个庞大的代码库,是否有任何方法可以在仅使用标签的帮助下做同样的事情,而不是单独处理单个文件? – 2011-12-29 13:44:46
@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
非常感谢您的热心帮助。 – 2011-12-30 06:54:51