如何使用命令行进行 p4 (perforce) 合并?
How to do p4 (perforce) merge using command line?
我正在 windows 上编写用于 p4 合并的批处理脚本。
在 p4 中,我有一个源文件夹和目标文件夹如下:
source : //depot/a/b/c/src/
destination: //depot/a/b/c/dest/
我只想用“src”替换“dest”的全部内容。
因此,在合并之前,如果源代码如下所示:
src/Folder1/1.txt (content is 1111)
src/Folder1/2.txt (content is 2222)
src/Folder2/1.txt (content is 3333)
src/Folder2/2.txt (content is 4444)
在合并之前,dest 看起来像这样:
dest/Folder1/1.txt (content is 5555)
dest/Folder1/3.txt (content is 6666)
dest/Folder4/1.txt (content is 7777)
dest/Folder4/2.txt (content is 8888)
那么,合并之后,“dest”应该是这样的:
dest/Folder1/1.txt (content is 1111)
dest/Folder1/2.txt (content is 2222)
dest/Folder2/1.txt (content is 3333)
dest/Folder2/2.txt (content is 4444)
注意事项:
Folder4 从 dest 得到 deleted 因为它不在 src 中。
Folder2 得到 added 到 dest 因为它在 src.
我做的是:
- p4 整合//depot/a/b/c/src/...//depot/a/b/c/dest/...
- p4 解析-at
- p4 submit -d "将内容从 src 合并到 dest"
但是,它没有给我想要的行为。请帮忙。
一个问题是 p4 integrate
将仅集成 以前未集成的 更改。如果之前集成了某些更改(并且由于合并冲突而更改),您的 p4 integrate //depot/a/b/c/src/... //depot/a/b/c/dest/...
命令将不会重做它们。
要从 src
破坏 dest
,我认为您需要在使用 p4 integrate
时添加 -f
标志以忽略以前的集成历史记录(然后使用p4 resolve -at
和以前一样)。
既然你说了
All I want is to replace the entire content of "dest" with "src"
您应该使用 p4 copy
,如:
p4 copy //depot/a/b/c/src/... //depot/a/b/c/dest/...
见the docs,之后别忘了p4 submit
。
我正在 windows 上编写用于 p4 合并的批处理脚本。
在 p4 中,我有一个源文件夹和目标文件夹如下:
source : //depot/a/b/c/src/
destination: //depot/a/b/c/dest/
我只想用“src”替换“dest”的全部内容。
因此,在合并之前,如果源代码如下所示:
src/Folder1/1.txt (content is 1111)
src/Folder1/2.txt (content is 2222)
src/Folder2/1.txt (content is 3333)
src/Folder2/2.txt (content is 4444)
在合并之前,dest 看起来像这样:
dest/Folder1/1.txt (content is 5555)
dest/Folder1/3.txt (content is 6666)
dest/Folder4/1.txt (content is 7777)
dest/Folder4/2.txt (content is 8888)
那么,合并之后,“dest”应该是这样的:
dest/Folder1/1.txt (content is 1111)
dest/Folder1/2.txt (content is 2222)
dest/Folder2/1.txt (content is 3333)
dest/Folder2/2.txt (content is 4444)
注意事项:
Folder4 从 dest 得到 deleted 因为它不在 src 中。
Folder2 得到 added 到 dest 因为它在 src.
我做的是:
- p4 整合//depot/a/b/c/src/...//depot/a/b/c/dest/...
- p4 解析-at
- p4 submit -d "将内容从 src 合并到 dest"
但是,它没有给我想要的行为。请帮忙。
一个问题是 p4 integrate
将仅集成 以前未集成的 更改。如果之前集成了某些更改(并且由于合并冲突而更改),您的 p4 integrate //depot/a/b/c/src/... //depot/a/b/c/dest/...
命令将不会重做它们。
要从 src
破坏 dest
,我认为您需要在使用 p4 integrate
时添加 -f
标志以忽略以前的集成历史记录(然后使用p4 resolve -at
和以前一样)。
既然你说了
All I want is to replace the entire content of "dest" with "src"
您应该使用 p4 copy
,如:
p4 copy //depot/a/b/c/src/... //depot/a/b/c/dest/...
见the docs,之后别忘了p4 submit
。