【问题标题】:How to integrate using perforce如何使用 perforce 进行集成
【发布时间】:2014-09-05 00:42:50
【问题描述】:

我是执行新手。我正在尝试将分支 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 中的代码与分支 2 中的代码不同,则只需合并两个分支。合并不会导致差异;合并解决差异。

标签: perforce reversion


【解决方案1】:

通常在集成时,您在两个不同的分支上操作,而不是在单个文件的两个不同版本上进行操作,目标是合并它们而不是附加它们 - 您使用 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-10
    • 2021-02-17
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多