kin*_*005 29 perforce revision
我正在使用Perforce P4V(图形工具)在工作时与我的Perforce服务器进行交互.我有一个项目,我添加到仓库,我不小心从我的本地计算机上的工作区删除它,问题是当我使用Get Revision Action(GUI等效的同步),文件没有得到更新,即我可以查看我想要的服务器上的文件,但它们无法与我的本地PC正确同步.令我感到沮丧的是,文件没有从服务器中取出.我假设应该发生的事情是,如果文件在我的本地PC上被改变,我应该能够从服务器获取修订版,然后将数据拉到我的本地PC并在我的PC上本地覆盖更改,但那并没有发生.有什么我想念的吗?
Mar*_*ark 59
Perforce会跟踪它认为您在本地工作站上拥有的文件.如果你在本地删除这些文件(并且不要"告诉"perforce),那么Perforce仍会认为你拥有这些文件.如果你想让它们恢复,你需要"强制同步"文件.在p4v中,您可以使用"获取修订版本..."项,在随后的对话框中,您可以选中"强制操作"复选框,告诉Perforce再次为您提供所有文件,无论Perforce是否认为您需要它们.
只是为了完成信息,如果你想在本地删除文件,你可以通过选择"从工作区删除"项目通过p4v这样做.这样做会在本地删除文件,并告诉perforce您不再拥有这些文件,以便下次同步时,将从服务器检索这些文件.
Chr*_*isF 11
它们不会更新,因为根据Perforce,您仍然拥有本地计算机上的文件.
您需要使用"Get Revison ..."选项并启用"强制操作"选项.
这将告诉Perforce刷新所有文件,即使它认为你有最新版本的文件.
Zah*_*hra 10
就像其他人提到的那样,一个解决方案是对整个软件仓库进行"强制同步",这基本上覆盖了从服务器到本地的所有内容.这样做的缺点是,如果你在大型仓库工作,可能需要很长时间才能完成.
另一种方法是将本地工作区与服务器进行比较,然后仅强制同步工作区中缺少的文件.
p4 diff -sd //Depot/path/… | p4 -x – sync -f
Run Code Online (Sandbox Code Playgroud)
-sd选项:仅显示客户端工作空间中缺少但未显示在库中的未打开文件的名称.
如果-sd不是您需要的,还有更多选项(sa/se/etc.)可用.看到这里.
该命令的信用额转到此博客.
open for edit and cannot be deleted
我按照你的建议做了,但在尝试时我不断收到文件仍然存在的消息Remove from Workspace
。
另外,Get Revision
返回一条消息说no files were updated
。
我最终要做的是Revert
文件,然后执行Get Revision
操作,解决了问题。