我是新手。我正在尝试将分支br#1集成到分支br#2
中让我们说这是一个示例代码 // BR#1
int foo{
blah blah;
}
// BR#2
int foo{
blah blah
}
我希望将它们整合在一起 // BR#3
int foo_branch1{
blah blah;
}
int foo_branch2{
blah blah
}
最好的方法是什么?
答案 0 :(得分:0)
通常在集成时,您在两个不同的分支上运行,而不是单个文件的两个不同的修订,目标是合并它们而不是追加它们 - 您用br#1和br#2描述的内容是一个我以前没见过的用例。
通常要创建一个分支,您可以执行以下操作:
p4 integrate //depot/branch1/... //depot/branch2/...
p4 submit
这将创建一个新目录“branch2”,其中一组文件位于#1,每个文件都是“branch1”中头版本的相同副本。每个分支都是自己的文件目录,具有自己的版本编号,您可以完全独立地处理它们。然后在对branch1和branch2进行更改之后,您可以执行以下操作:
p4 integrate //depot/branch1/... //depot/branch2/...
p4 resolve
p4 submit
“integrate”和“resolve”命令会将您在branch1上所做的更改合并到您在branch2上所做的更改。
由于您只是想将单个文件的修订版连在一起,但这是一个非常简单的shell脚本问题 - 我正在遵循您的示例中使用的名称和内容(请注意“// br“不是Perforce中的有效文件路径:”
p4 edit //br
p4 print -q //br#1 | sed -e "s/foo/foo_branch1/" > br
p4 print -q //br#2 | sed -e "s/foo/foo_branch2/" >> br
p4 submit -d "concatenate and edit revisions 1 and 2 to make 3"
“p4 print”命令从软件仓库中获取指定的修订版本,并且我在使用“sed”进行编辑(foo - > foo_branchN)之前将其自动附加到工作区文件中。最后,提交了连接文件,使其成为#3。