如何使用Perforce Shelving让一个人创建更改而另一个人提交更改?

Jay*_*ang 8 version-control perforce shelve unshelve shelving

我希望UserA能够在Perforce中创建一个更改列表,然后搁置它.然后,我希望UserB能够取消搁置该更改列表并提交它.

这听起来很简单,但Perforce的不受欢迎似乎并没有像我期望的那样发挥作用.当UserB运行'p4 unshelve -s 1234'时,它会从更改1234中取消所有已更改的文件,但它不会带来更改的元数据(描述,作业修复)!这意味着UserB可以搁置的CL 复制到一个全新的CL并提交它(通过手动重新创建描述和修复),但这会留下旧的搁置CL.

这里顺理成章的事情将是用户B

  1. 取消保持CL
  2. 查看搁置的CL的元数据
  3. 将该元数据复制到 CL中
  4. 提交新的CL
  5. 删除旧搁置的CL
这就是Perforce文档甚至推荐的内容.有一个小问题:UserB不允许删除其他用户的搁置CL!只有UserA和p4管理员可以删除他的搁置CL.我不明白为什么文档会掩盖这一点.

以前有没有人遇到这个问题?你是怎么解决的?

编辑:我应该澄清一下,我的问题非常普遍.我正在开发一个UserA是开发人员的工具,而UserB本身就是构建系统.开发人员会搁置CL,然后让构建系统取消搁置,并通过一系列构建和测试对其进行验证(如果它通过了所有这些测试,则自动提交CL).期待每个开发人员记住删除他们搁置的CL,如果构建系统提交它们似乎必然会失败!

Mik*_*nor 2

让构建系统发回成功或失败的通知,并让开发人员自己提交变更列表怎么样?

如果需要解析任何文件,尝试自动提交更改列表可能会很棘手。您也许可以自动执行其中的一些操作,但如果存在任何冲突则无法执行。