我很难从perforce服务器获取最新版本。仓库非常大,我不想做一个完整的结账,因为它会传说很长一段时间。相反,我将未版本化的源和依赖项放在工作区中并执行“p4 sync -k”。这成功地对我的文件进行了版本,但它没有从服务器中带来新文件。
我该怎么做?
答案 0 :(得分:5)
如果我了解你的情况:
您应遵循的步骤是:
p4 sync -k
以使Perforce认为您拥有所有文件的最新副本。p4 diff -se ... | p4 -x - sync -f
强制同步任何过时的文件p4 diff -sd ... | p4 -x - sync -f
强制同步所有丢失的文件此时,您可能拥有从服务器删除的本地文件。如果您关心这些,您可以编写一个简单的脚本来检测它们并将它们从文件系统中删除。
好消息是Perforce的下一个版本(2012.1)有一个status
命令,可以更容易地发现所有差异。
要从另一个角度处理此问题,您是否需要工作区中的整个项目?您是否可以缩小工作区视图以仅使用数据的子集?
答案 1 :(得分:2)
这是一个经典的Perforce问题。
要实现这一目标,您需要同时管理一些命令。
p4 diff -sd //Depot/Path/... | p4 -x – sync -f
p4 diff -sd
命令将查找工作区中不存在的所有文件。p4 -x – sync -f
会强制同步这些文件。 正如p4-randall在他的answer中,你可能还想运行p4 diff -se ... | p4 -x - sync -f
来同步任何过时的文件。
HTH,