我有一个使用p4 integrate
创建的分支,但现在合并并没有表现出我的期望。当我合并时,我得到以下内容:
$ p4 merge -n ISSUE-49/... trunk/...
...
//depot/products/theProduct/trunk/some/directory/somefile.conf#1 - sync/delete from //depot/products/theProduct/ISSUE-49/some/directory/somefile.conf#1
...
该文件已添加到ISSUE-49分支(未删除),因此我不明白为什么要删除它。
当我尝试使用p4 integrate
时,我得到:
$ p4 integrate -n ISSUE-49/... trunk/...
...
//depot/products/theProduct/trunk/some/directory/somefile.conf#1 - branch/sync from //depot/products/theProduct/ISSUE-49/some/directory/somefile.conf#1
...
看起来它正在尝试进行分支而不是合并。是吗?如何安全地将我的更改从ISSUE-49合并回主干?
我正在尝试使用p4 2012.1
从Linux上的命令行执行此操作。我的Windows机器上有p4v 2013.3
。如果它更容易,我可以使用它。
答案 0 :(得分:2)
A"合并"操作并不总是导致"整合"修订版 - 它取决于目标文件的当前状态以及源文件中所做的更改。
A"分支" revision是新文件的第一个修订版,它是从其他文件创建的副本。 A"删除" revision表示实际上不存在的文件(通常这是以前存在并已被删除的文件的占位符,但它也可以是从未存在过的文件的占位符。)
" p4 merge"之间的区别和" p4整合"是" p4整合"该文件已打开" branch"立即而不是安排决心。如果你运行" p4 merge"然后是" p4 resolve -am"该文件将打开" branch"就像你运行" p4整合"。
总结:一切都很好。由于该文件尚未存在于主干中,因此ISSUE-49的正常合并将在主干中将其创建为新文件。无论你运行" p4整合" +" p4解决"或" p4合并" +" p4解析",文件将打开" branch",这是将其创建为相同的新文件的操作到ISSUE-49文件。