如何使用perforce进行集成

时间:2014-07-14 23:37:49

标签: perforce reversion

我是新手。我正在尝试将分支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
}

最好的方法是什么?

1 个答案:

答案 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。