如何使用命令行进行p4(perforce)合并?

时间:2017-11-06 10:54:04

标签: perforce

我正在Windows上编写批处理脚本以进行p4合并。

在p4中,我有一个源文件夹和目标文件夹,如下所示:

  

来源: // depot / a / b / c / src /

     

目的地: // depot / a / b / c / dest /

我想要的只是替换" dest"的全部内容。与" src"。

所以,在合并之前,如果source看起来像这样:

  

src / Folder1 / 1.txt(内容为1111)

     

src / Folder1 / 2.txt(内容为2222)

     

src / Folder2 / 1.txt(内容为3333)

     

src / Folder2 / 2.txt(内容为4444)

在合并之前,dest看起来像这样:

  

dest / Folder1 / 1.txt(内容为5555)

     

dest / Folder1 / 3.txt(内容为6666)

     

dest / Folder4 / 1.txt(内容为7777)

     

dest / Folder4 / 2.txt(内容为8888)

然后,在合并之后," dest"应该是这样的:

  

dest / Folder1 / 1.txt(内容为1111)

     

dest / Folder1 / 2.txt(内容为2222)

     

dest / Folder2 / 1.txt(内容为3333)

     

dest / Folder2 / 2.txt(内容为4444)

通知

Folder4 从dest获取 已删除 ,因为它在src中不存在。

Folder2 添加添加到dest中,因为它位于src中。

我在做的是:

  1. p4整合// depot / a / b / c / src / ... // depot / a / b / c / dest /...
  2. p4 resolve -at
  3. p4 submit -d"将内容从src合并到dest"
  4. 但是,它没有给我理想的行为。请帮忙。

2 个答案:

答案 0 :(得分:2)

既然你说

  

我想要的只是用“src”

替换“dest”的全部内容

您应该使用p4 copy,如:

p4 copy //depot/a/b/c/src/... //depot/a/b/c/dest/...

请参阅std::basic_string::begin,之后不要忘记p4 submit

答案 1 :(得分:0)

一个问题是p4 integrate //depot/a/b/c/src/... //depot/a/b/c/dest/...只会集成以前未整合的更改。如果先前已集成某些更改(并且由于合并冲突而更改),则您的dest命令不会重做它们。

要从src隐藏-f,我认为您在使用p4 integrate忽略以前的整合历史时需要添加p4 resolve -at标记(然后使用{{跟随它) 1}}和以前一样)。