似乎p4 unshelve -s changelist
没有带来在搁置changelist
中添加的新源文件。两个问题:
- 我错过了什么吗?
- 有什么解决方法吗?
谢谢。
p4 unshelve
应该忠实地打开每个被搁置的文件,以便执行相应的操作 - 添加,编辑,集成或删除。 打开的文件将以相同的工作修订版打开,具有相同的解析(挂起或已完成(和相同的内容。
回答您的两个问题:
- 是的,你错过了一些东西(但没有足够的信息来知道是什么(。
- 要解决此问题,请找出您错过的内容并修复它。
添加的文件是否显示在p4 files @=SHELF
? 如果没有,它们从一开始就不会被搁置。 回去解决这个问题。
您是否收到来自p4 unshelve
的错误消息,告诉您这些文件无法上架? 如果是这样,请修复它。
文件是否已根据p4 opened
打开? 如果是这样,要么他们确实被搁置了,要么这就是他们不能被搁置的原因。
我遇到了同样的问题,但就我而言,这是因为我打开了文件以在本地添加。我要取消搁置的目标搁置 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>
仅取消搁置仅为添加而打开的文件。
完成,现在您可以继续工作了。
如果文件存在于传递给-s
的变更列表中,p4 unshleve
将打开要添加的文件。
存在一种情况,即添加的文件不会被解架,这是当文件已经存在并且是可写的时。对于此类文件,您应该看到一条错误消息:
无法更改可写文件/文件/路径
当我执行以下操作时,我曾经遇到过这种情况:
- 搁置已打开文件以进行添加
workspace1
的变更列表 - 取消搁置
workspace2
上的变更列表 - 还原
workspace2
上所有未上架的文件,包括打开添加的文件- 现在,打开要添加的文件将存在于
workspace2
中,并保持可写状态
- 现在,打开要添加的文件将存在于
- 在
workspace2
上再次取消搁置更改列表- 如果您在此处检查
p4 unshelve
的输出,您应该会看到上面提到的错误
- 如果您在此处检查
- 在
workspace2
上运行p4 opened
,但找不到打开要添加的文件