如何使Perforce Depot中一个目录与另一个完全匹配?
实现Perforce目录B与A完全同步的方法
命令行操作步骤
创建新变更列表
生成并提交一个空的变更列表,用于记录后续所有同步操作:p4 change -o | p4 change -i执行后会返回新的变更号(比如
Change 1234 created),请记录该编号。执行同步集成(含删除冗余文件)
通过集成命令让B完全匹配A,同时自动标记B中独有的文件为删除状态:p4 integrate -d -t //depot/A/... //depot/B/...参数说明:
-d:删除目标路径(B)中不存在于源路径(A)的所有文件-t:强制忽略两个目录的独立历史差异,直接用A的版本覆盖B中对应文件,避免历史冲突阻塞操作
确认并提交变更列表
先检查变更列表中的操作是否符合预期:p4 describe -s 1234确认无误后提交变更:
p4 submit -c 1234
P4V图形界面操作步骤
- 打开P4V,在左侧Depot视图中找到目录
A/,右键选择「Integrate...」。 - 在弹出的集成窗口中,Target path填写
//depot/B/...。 - 切换到Options标签页,勾选以下选项:
Delete target files not present in source(对应命令行的-d参数)Force integration (ignore history)(对应命令行的-t参数)
- 点击「Integrate」按钮,所有同步、修改、删除操作会自动归入当前活动变更列表(若无活动列表,会提示创建新列表)。
- 查看变更列表中的文件变更,确认无误后点击「Submit」完成提交。
注意事项
- 操作前建议用
p4 diff //depot/A/... //depot/B/...对比A和B的差异,提前确认需要同步和删除的内容。 - 整个过程所有操作都在单个变更列表中完成,不会出现先清空B导致的仓库损坏风险。
内容的提问来源于stack exchange,提问作者Evan Cox
相关产品推荐
相关产品推荐

