Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在clearcase中将同一VOB中的标记节点从一个分支复制到另一个分支_Clearcase - Fatal编程技术网

在clearcase中将同一VOB中的标记节点从一个分支复制到另一个分支

在clearcase中将同一VOB中的标记节点从一个分支复制到另一个分支,clearcase,Clearcase,我有两个分支:分支1:稳定分支,分支2:发展分支 分支2中有多个签入节点。其中,大约有3个节点具有标签:L1、L2和L3: 你能提供一个clearcase命令来完成这个任务吗 谢谢 致以最良好的祝愿 Sandeep Singh首先,您需要: 为了避免快照视图涉及的所有更新,这会更快 实际上,您可以复制扩展路径名,这意味着您可以 因此,您定义了一个用于更新Branch1的动态视图(即选择规则以-mkbranch1结尾:有关所需的三个选择规则,请参见“”) 然后,您需要找到L1的每个相关版本,并

我有两个分支:分支1:稳定分支,分支2:发展分支

分支2中有多个签入节点。其中,大约有3个节点具有标签:L1、L2和L3:

你能提供一个clearcase命令来完成这个任务吗

谢谢

致以最良好的祝愿

Sandeep Singh

首先,您需要:

  • 为了避免快照视图涉及的所有更新,这会更快
  • 实际上,您可以复制扩展路径名,这意味着您可以
因此,您定义了一个用于更新
Branch1
的动态视图(即选择规则以
-mkbranch1
结尾:有关所需的三个选择规则,请参见“”)

然后,您需要找到
L1
的每个相关版本,并将它们复制到当前视图的顶部,在
Branch1
中的新版本上添加不同的标签(例如):
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\u PN%\“cp\%CLEARCASE\u XPN%\”\%cleartool ci-nc\%CLEARCASE\u PN%\“cleartool mklabel–替换L1B1\%CLEARCASE\u 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\u PN\“cp\”$CLEARCASE\u XPN\“\”$cleartool ci-nc\“$CLEARCASE\u PN\”cleartool mklabel–替换L1B1\“$CLEARCASE\u PN\”

CLEARCASE\u XPN
引用可从动态视图访问的完整扩展路径名,
CLEARCASE\u 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 

谢谢你的回复。但是,如果我有一个庞大的代码库,有没有办法只借助标签,而不是处理单个文件呢?@sandepsing:请阅读:ClearCase总是一个文件一个文件地工作。但是,
cleartool find
可以帮助您为使用特定标签找到的每个版本应用一系列命令。因此,您需要对每个标签名重复我提到的
cleartool find
命令,而不是对每个文件。它将签出、复制、签入并为找到的每个文件应用新标签(
L1B1
),该文件的版本已标记为
L1
。因此,在这方面,你将在标签的帮助下工作。非常感谢你的帮助。@Sandepsing:那么你成功地使它工作了吗?不要忘记,您可以首先使用更简单的find命令对其进行测试:
cleartoolfind-ver“lbtype(LBL1)”-exec“echo\%CLEARCASE\u XPN%,%CLEARCASE\u PN%\”
以显示要复制的版本和要覆盖的文件。然后,您可以尝试“
exec
”指令中更完整、更复杂的命令序列。新年快乐&非常感谢您的帮助。这一次,我没能成功。即使在为文件名提供绝对路径后,也会遇到问题。我通过合并解决了这个问题&然后自动标记(通过一个脚本-用于中间节点)。事实上,我在一家开发部门工作。我们在代码上放置了3个主要标签。现在,最后一项工作是将标记的节点带到目标父分支上。我一定会更好地尝试这种方法,这样我以后就不会面临这个问题了。
 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\""
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