【发布时间】:2018-05-01 15:24:35
【问题描述】:
我的项目大约为每个流 100 GB,每个工作区额外增加了 60 GB 用于本地本地缓存文件。
每次我需要一个新流的工作区时,都不是从库中下载和重建,有没有办法复制我已经下载和设置的工作区,然后让 Perforce 将其识别为不同流的一部分?
【问题讨论】:
我的项目大约为每个流 100 GB,每个工作区额外增加了 60 GB 用于本地本地缓存文件。
每次我需要一个新流的工作区时,都不是从库中下载和重建,有没有办法复制我已经下载和设置的工作区,然后让 Perforce 将其识别为不同流的一部分?
【问题讨论】:
您的第一个工作区是clientA,根植于/home/clientA,而您的新工作区将是clientB,请执行以下操作:
cp -r /home/clientA/ /home/clientB/
p4 set P4CLIENT=clientB # or use P4CONFIG files
p4 client -t clientA
p4 sync -k @clientA
p4 clean
现在您将clientB 设置为clientA 的副本——sync -k 命令告诉服务器“同步clientA 拥有的所有内容,但不向我发送实际文件,只是假装我同步了它们。” p4 clean 命令应该是无操作的,但是如果您以某种方式弄乱了副本,或者您在 clientA 中打开了文件或其他什么,这将通过强制重新同步错误的文件来解决它。
现在你已经完成了你可以做的事情:
p4 switch STREAMNAME
这会将您切换到不同的流,仅同步不同的文件。许多人只有一个工作区并使用p4 switch 在流之间跳转;它会自动存储您正在进行的工作和所有内容,并且您可以通过没有所有内容的多个副本来节省本地磁盘空间。 (拥有多个工作区的一个好例子是,如果您有足够的空间,并且您不想在每次工作区内容更改时重建那些 60GB 的缓存文件......)
【讨论】:
p4 switch STREAMNAME 的用途。首先让两个客户端引用相同的流,然后使用p4 switch 在其中一个上切换流。 p4 switch 很聪明,会做正确的事。