含搁置文件的Perforce变更列表提交失败,如何解决?
解决Perforce变更列表提交失败的问题
问题分析
你的核心问题是目标变更列表存在搁置文件,导致无法直接提交;而使用-e参数属于误用,它仅用于编辑变更列表描述,不处理提交逻辑。
分步解决方案
取消变更列表的文件搁置
先把变更列表中搁置的文件恢复到本地工作区,清除搁置状态:p4 unshelve -c nnn(在P4V中操作:右键目标变更列表 → 选择「Unshelve」,确认恢复文件)
确认文件归属(可选)
检查所有需要提交的文件是否都归属于这个变更列表,避免分散到子集变更列表:p4 opened -c nnn如果有文件在其他变更列表,执行以下命令将其移到目标变更列表:
p4 reopen -c nnn //depot/path/to/target/file正常提交变更列表
现在可以直接提交目标变更列表了:p4 submit -c nnn(P4V中操作:右键目标变更列表 → 选择「Submit」即可)
为什么之前的操作失败?
- 当变更列表存在搁置文件时,Perforce会阻止提交,因为搁置文件是暂存在服务器的版本,本地工作区可能未同步这些变更,必须先通过
unshelve恢复到本地。 p4 submit -e nnn中的-e参数作用是编辑变更列表的描述信息,而非提交文件,所以会出现「No files to submit」的错误。
内容的提问来源于stack exchange,提问作者cardiff space man
相关产品推荐
相关产品推荐

