我正在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中。
我在做的是:
但是,它没有给我理想的行为。请帮忙。
答案 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}}和以前一样)。