如何将Perforce的//DepotA/StreamA导入//DepotB/StreamB根目录?
解决Perforce跨流导入文件到工作区根目录的问题
要把//DepotA/StreamA的内容直接导入//DepotB/StreamB的工作区根目录,和StreamB的文件平级,你需要调整流视图的配置:
正确的流视图配置
修改//DepotB/StreamB的视图为:
share ... import ... //DepotA/StreamA/...
生效步骤
配置完成后,在工作区执行同步命令:
p4 sync
为什么之前的配置不生效?
你之前用的import ./... //DepotA/StreamA/...之所以没效果,是因为在Perforce流视图语法里,./...是相对于当前流的仓库路径(也就是//DepotB/StreamB/...),这个规则相当于要把StreamA的文件映射到StreamB的仓库路径下,和share ...的规则重复,Perforce会忽略这种冲突的映射,所以没有文件被导入。
而改成import ... //DepotA/StreamA/...后,...代表工作区的根目录,直接把StreamA的文件映射到工作区根目录,就能实现你想要的结构。
注意事项
如果StreamA和StreamB存在同名文件,同步时会触发冲突报错。这种情况下你需要先处理冲突:要么重命名其中一方的文件,要么在同步时指定保留哪一个版本(比如用p4 sync -f强制覆盖,但要谨慎操作)。
内容的提问来源于stack exchange,提问作者Peter Collins
相关产品推荐
相关产品推荐

