Version control Perforce不能多次取消搁置?

Version control Perforce不能多次取消搁置?,version-control,perforce,Version Control,Perforce,我是新来的。一天,一位同事使用shelve命令与我共享一些代码更改。我取消了更改,并修改了他的代码更改中的几个小问题。一天后,他搁置了上次对同一组文件所做的一些新更改。我试图取消搁置更改,但这次Perforce报告了我更正的每个文件的错误: “图书管理员签出\u某些路径\u失败。打开以读取:\u某些路径\u,d/1.\u挂起\u更改列表\u编号。gz:没有这样的文件或目录” 我寻找了一些答案,但没有一个我能完全理解 我对这个问题的理解是: 假设文件A搁置了dude X对ABC的更改。 我选择更改

我是新来的。一天,一位同事使用shelve命令与我共享一些代码更改。我取消了更改,并修改了他的代码更改中的几个小问题。一天后,他搁置了上次对同一组文件所做的一些新更改。我试图取消搁置更改,但这次Perforce报告了我更正的每个文件的错误:

“图书管理员签出\u某些路径\u失败。打开以读取:\u某些路径\u,d/1.\u挂起\u更改列表\u编号。gz:没有这样的文件或目录”

我寻找了一些答案,但没有一个我能完全理解

我对这个问题的理解是:

假设文件A搁置了dude X对ABC的更改。 我选择更改,并编辑此文件A。让我们将新文件称为A*

由于搁板是为临时工作而设计的,Perforce不会记录任何历史。 Dude X对文件A进行了更多更改。我想把它们捡起来

当Perforce取消搁置时,它基本上执行合并。DEF应该合并到文件A中。但是,Perforce看到的是*而不是A

当然是恐慌


有人能帮我理解这个机制吗?

你所描述的应该很有效;您收到的错误表明服务器端删除了工具架(如果有人直接进入服务器的数据存储并删除了与工具架对应的一些文件,而不是使用“p4 shelve-d”从客户端干净地删除工具架,您将收到此错误)。“这听起来有可能吗?”桑斯塔福德同意。我需要和管理员再核实一下。所以从其他人的待定变更列表中提取搁置的变更应该是完全可以的,对吧?我可以想象这就像你在git中选择提交一样。是的,当你解压到一个打开的文件中时,它应该简单地将工具架内容(即它所基于的搁置版本和仓库版本之间的差异)合并到你的本地文件中,而不必假设你的本地文件包含什么(总是假定打开进行编辑的文件可能包含任何内容)。