Perforce 性能未正确同步文件

Perforce 性能未正确同步文件,perforce,revision,Perforce,Revision,我正在使用图形工具Perforce P4V与我的Perforce服务器进行交互。我有一个添加到仓库的项目,我不小心从本地计算机上的工作区中删除了它,问题是当我使用Get Revision操作(相当于同步的GUI)时,文件不会得到更新,即我可以在服务器上看到我想要的文件,但它们无法与我的本地PC正确同步。无法从服务器中提取文件让我感到沮丧。我假设应该发生的是,如果文件在我的本地PC上被更改,我应该能够从服务器获取修订,然后将数据拉到本地PC并覆盖本地PC上的更改,但这并没有发生。有什么我遗漏的吗?

我正在使用图形工具Perforce P4V与我的Perforce服务器进行交互。我有一个添加到仓库的项目,我不小心从本地计算机上的工作区中删除了它,问题是当我使用Get Revision操作(相当于同步的GUI)时,文件不会得到更新,即我可以在服务器上看到我想要的文件,但它们无法与我的本地PC正确同步。无法从服务器中提取文件让我感到沮丧。我假设应该发生的是,如果文件在我的本地PC上被更改,我应该能够从服务器获取修订,然后将数据拉到本地PC并覆盖本地PC上的更改,但这并没有发生。有什么我遗漏的吗?

它们不会更新,因为根据Performance,您的本地计算机上仍然有这些文件

您需要使用“获取修订…”选项并启用“强制操作”选项


这将告诉Perforce刷新所有文件,即使是它认为您拥有最新版本的文件。

Perforce会跟踪它认为您在本地工作站上拥有的文件。如果您在本地删除这些文件(并且没有“告诉”perforce),那么perforce仍会认为您拥有这些文件。如果你想找回它们,你需要“强制同步”这些文件。在p4v中,您可以使用“获取修订…”项,在随后的对话框中,您可以选中“强制操作”复选框,告知Perforce重新提供所有文件,而不管Perforce是否认为您需要这些文件


为了完成这些信息,如果您确实想在本地删除这些文件,您可以通过p4v选择“从工作区中删除”项。这样做将在本地删除文件,并告诉perforce您不再拥有这些文件,以便下次同步时,将从服务器检索这些文件。

我按照您的建议做了,但我一直收到消息,这些文件仍
打开进行编辑,无法删除,尝试从工作区中删除时

另外,
Get Revision
返回一条消息,表明
没有更新任何文件


我最后不得不做的是还原文件,然后执行
获取修订
操作,解决了问题。

即使启用了“强制操作”,获取修订也只会更新未打开(签出)的文件。您应该恢复该工作区中标记为签出的所有文件,然后使用“获取修订版”和“强制操作”

就像其他人提到的那样,一个解决方案是对整个仓库执行“强制同步”,这基本上覆盖了从服务器到本地服务器的所有内容。这样做的缺点是,如果你在一个大型仓库工作,可能需要很长时间才能完成

另一种方法是将本地工作区与服务器进行比较,然后仅强制同步工作区中缺少的文件

p4 diff -sd //Depot/path/… | p4 -x – sync -f
-sd选项:仅显示客户端工作区中丢失但存在于仓库中的未打开文件的名称

如果-sd不是您所需要的,则有更多选项(sa/se/等)。看


该命令的积分将转到blog。

签出文件,稍作更改,然后还原。Perforce将用最新版本替换本地文件。

对于遇到此问题的人,这在mac命令行上对我有效

cd放入本地perforce workspace—您正在处理的已签出文件的基本目录

p4 sync -f
-f是强制同步

当您从time machine备份还原mac时,这也很方便


请不要使用答案进行评论。您有代表,请留下评论。请看一看。@raven-别忘了OP始终可以对他们自己的问题的答案发表评论。为什么Performce会阻止用户对选中的文件进行修订?添加到顶部答案-通过命令行界面执行此操作的方法是在您尝试同步的文件或路径上执行
p4 sync-f
(正如下面@Greenish所提到的)。即使使用force标志,它通常也不起作用-对我来说,它所做的是还原本地新文件,然后强制同步