提交搁置变更清单的最快方式

时间:2013-04-08 11:33:14

标签: perforce

我搁置了一个变更清单(比如X),我确保了它的正确性。现在我想提交更改列表。我可以

  1. p4 unshelve -s X -c Y其中Y是我在执行此命令之前创建的新更改列表。 然后p4搁置-c X -d,最后p4提交-c Y
  2. 否则我可以取消搁置X,删除搁架X并将本地副本移动到更改列表X(p4 reopen -c X)并提交X.
  3. 最后一个选项是取消搁置X,删除搁置X,p4更改(和编辑说明),最后p4提交
  4. 您对以下方面的建议是什么: -

    1. 使用1/3但复制粘贴X已有的说明到新的更改列表
    2. 使用2,但在命令p4 reopen中手动复制每个打开的文件。
    3. 2超过1和3的唯一优势是我不必删除X(因为它原来是我提交的更改列表,而在其他情况下它仍然是“待定”)。

5 个答案:

答案 0 :(得分:34)

行。上面的所有方法都很冗长。最短的是

1)

  1. p4 shelve -c #changelist -d
  2. p4 submit -c #changelist

答案 1 :(得分:8)

在Perforce服务器的新2013.1版本中,您现在可以执行'p4 submit -e X',它直接提交架子而无需先取消搁置。

尝试一下,这是一个很棒的功能!

答案 2 :(得分:2)

根据我对Perforce的经验,我只会取消更改列表,删除搁置的文件并提交。只需确保更改列表的描述准确无误。

答案 3 :(得分:0)

使用Perforce 2013.1或更高版本,您可以提交搁置的更改列表" 12345"直接:

p4 submit -e 12345

在以前的版本中,请使用此组合:

p4 unshelve -s 12345
p4 submit ...

答案 4 :(得分:0)

自2018年以来,这是更新的perforce版本(2013.1和更高版本)的答案

p4 submit -e 123456

如果您已经在某些树中打开了该搁架列表,则此命令将失败:

Change 123456 has shelved files --  cannot submit

在这种情况下,请转到该树的根(或使用-C client_name_where_shelvelist_is_open)并在运行上述命令之前还原更改,如下所示:

p4 revert -c 123456 ...
p4 submit -e 123456