似乎p4 unshelve -s changelist
不会带来搁置中添加的新源文件changelist
。两个问题:
- 我错过了什么吗?
- 任何解决方法?
谢谢。
我遇到了同样的问题,但就我而言,这是因为我打开了文件以在本地添加。我想取消搁置的目标搁置 CL 也打开了该文件以进行添加。因此,如果我尝试取消搁置已搁置的目标 CL,它会发出类似于以下错误消息的声音。
//depot/dir/file.h - can't unshelve (already opened for add)
所以我必须做以下事情
p4 revert <file(s)>
- 恢复所有为添加打开的文件。这不会删除文件,它仍然会存在。它会显示类似的消息//depot/dir/file.h#none - was add, abandoned
p4 unshelve -s <target-CL>
- 再次取消搁置目标 CL,这一次,应该没有错误消息。如果您之前已经取消搁置,但对于那些只为添加而打开的文件有错误,那么您可以只p4 unshelve -s <target-CL> <file1> <file2>
取消搁置那些为仅添加而打开的文件。完成,现在您可以继续工作了。
p4 unshelve
应该忠实地打开每个被搁置的文件,以进行相应的操作——添加、编辑、整合或删除。打开的文件将以相同的工作版本打开,具有相同的解析(未决或已完成)和相同的内容。
回答你的两个问题:
添加的文件是否显示在 中p4 files @=SHELF
?如果没有,它们一开始就没有被搁置。回去修复它。
您是否收到一条错误消息,p4 unshelve
告诉您这些文件无法取消搁置?如果是这样,请修复它。
文件是否已经打开p4 opened
?如果是这样,要么他们确实被搁置了,要么这就是他们不能被搁置的原因。
p4 unshleve
如果它们存在于传递给的更改列表中,将打开文件进行添加-s
。
存在一种情况,即添加的文件不会被取消搁置,即文件已经存在并且是可写的。对于此类文件,您应该会看到一条错误消息:
无法破坏可写文件/文件/路径
当我执行以下操作时,我曾经遇到过这种情况:
workspace1
workspace2
workspace2
,包括为添加而打开的文件
workspace2
并保持可写状态workspace2
p4 unshelve
此处的输出,您应该会看到上面提到的错误p4 opened
,workspace2
找不到为添加而打开的文件