我正在尝试学习Perforce并希望从软件仓库删除文件(p4删除,p4提交很容易),但是也会从客户端机器目录结构中删除它。我想将我的本地文件保存在我的目录中。
我能看到这样做的唯一方法是在删除之前将其移出Perforce控制下的层次结构。我能够通过同步早期版本来恢复我的文件。
也许我设置我的客户端工作区错了?或者我误解了源控制的基本概念?客户端工作区是/ home / user,我这样做,所以我可以在我的主目录下添加任何文件,而不会得到关于文件不在客户端根目录下的错误。
仅供参考 - 运行P4D / LINUX26X86 / 2009.1 / 222893(2009/11/12)的Linux客户端和服务器
任何建议表示赞赏。 感谢。
答案 0 :(得分:4)
我不相信有任何方法可以保留您在Perforce下删除的文件。这有很好的理由,就好像在库中删除文件一样,没有理由(从源代码控制的角度来看)在客户端工作区中保留副本。
我怀疑问题是你使用Perforce的方式。
根据您所写的内容,您似乎正在使用Perforce来备份/跟踪主目录结构中的文件。因此,您使用Perforce“主”的方式位于您的主目录中,“副本”位于软件仓库中。
这不是我理解的源控制系统的预期用途。
所有文件的主副本实际上都是软件仓库中的内容。从库中,出于多个客户端(视图)的目的,例如进行更改,测试等。客户端是暂时的,可以根据需要创建和删除。
要做你想做的事,你可能需要重新考虑如何使用Perforce。
答案 1 :(得分:1)
其他一些命令采用的参数可以让你伪造动作,但删除不会。您可以随时创建一个新客户端,在该工作区中执行删除。
答案 2 :(得分:1)
有一种方法可以做到这一点,落后于Perforce的背后。执行以下操作:
p4 delete
p4 submit
更改答案 3 :(得分:0)
"Client 'your-client' unknown - use 'client' command to create it."
p4 delete -k <file_to_delete>