有效地同步大型Perforce存储库?

ste*_*eve 4 perforce

我很难从perforce服务器获取最新版本.仓库非常大,我不想做一个完整的结账,因为它会传说很长一段时间.相反,我将未版本化的源和依赖项放在工作区中并执行"p4 sync -k".这成功地对我的文件进行了版本,但它没有从服务器中带来新文件.

我怎样才能做到这一点 ?

ran*_*sco 5

如果我了解你的情况:

  • 你对一个非常大的项目工作.
  • 您有一个不完全是最新的数据的本地快照.
  • 您希望仅获取快照与服务器上的最新快照之间的差异.

您应遵循的步骤是:

  • 运行p4 sync -k以使Perforce认为您拥有所有文件的最新副本.
  • 运行p4 diff -se ... | p4 -x - sync -f以强制同步任何过期文件
  • 运行p4 diff -sd ... | p4 -x - sync -f以强制同步任何丢失的文件

此时,您可能拥有从服务器中删除的本地文件.如果您关心这些,您可以编写一个检测它们的简单脚本,并将其从文件系统中删除.

好消息是Perforce的下一个版本(2012.1)有一个status命令可以更容易地发现所有差异.

要从另一个角度来看待这个问题,您是否需要工作区中的整个项目?您是否可以缩小工作区视图以仅使用数据的子集?