我正在尝试打开现有的Perforce应用程序。我做了一些本地更改,比如删除我要撤消的文件(也就是说,我希望我的本地副本再次与存储库完全匹配 - 删除添加的文件,恢复已删除的文件和撤消更改)。
当我尝试使用p4v gui客户端恢复时,我看到了这个错误:
file(s) not opened on this client
我做错了什么?
我确实设法恢复所有已更改的文件,但没有恢复/删除的文件。
编辑:我做了以下事情:
C:\Perforce
)我想回到“原始”状态,这是我第一次获得最新版本的存储库时服务器上的确切内容的副本。
答案 0 :(得分:23)
根据编辑后的描述,您可以直接在文件系统上添加和删除文件,而不是通过perforce。因此,Perforce对这些更改一无所知,因此没有任何回复。通常,当您要添加文件时,请使用“p4 add”(或等效的p4v操作),当您删除时,应使用“p4 delete”(或者再次使用等效的p4v操作)。
真的,回到原始状态的最佳选择是在c:\ perforce中修改代码的本地副本(在Windows资源管理器中),转到p4v,右键单击要同步的区域,然后选择“获取修订版本...”并在随后的对话框中,确保选中“强制操作”复选框。这将告诉Perforce您想要所有内容的新副本,无论您是否同步它。
您还可以在p4v中运行“协调脱机工作”。右键单击库区域并选择该选项。它将扫描本地文件夹结构,并向您报告已添加的文件,这些文件在perforce中不存在,删除了哪些文件以及修改了哪些文件。在该对话框中,您可以右键单击perforce中不存在的本地文件并删除它们,或者您可以“添加”它们。您还可以同步已删除的文件。
HTH。
答案 1 :(得分:3)
额外的一点是不要指出另一个原因。 如果文件名包含无法正确转换的异常字符,则客户端上的名称将永远不会与服务器上的名称相匹配。 在这种情况下的解决方案是在文件名中找到该字符(它将是Linux上的问号标志)并使用通配符来帮助识别文件到服务器,以便它可以删除它等(p4删除文件是一个方式去)。
答案 2 :(得分:0)
这个答案可能不是您的情况。当我在不登录p4的情况下编辑本地磁盘上的文件时,发生了这种情况。
在命令行中的快速解决方法是:
p4 login # make sure you've logged in
p4 edit <filename> # let p4 know you've edited the file
p4 revert <filename> # revert to "pristine" state