21

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

  1. p4 unshelve -s X -c Y 其中 Y 是我在执行此命令之前创建的新更改列表。然后 p4 shelve -c X -d 最后 p4 submit -c Y
  2. 否则我可以取消搁置 X,删除搁置 X 并将本地副本移动到更改列表 X(p4 重新打开 -c X )并提交 X。
  3. 最后一个选项是取消搁置 X,删除搁置 X,p4 更改(和编辑描述),最后 p4 提交

您对以下方面有什么建议:-

  1. 使用 1/3,但复制粘贴 X 已经拥有的描述到新的变更列表
  2. 使用 2 但在命令 p4 重新打开时手动复制每个打开的文件。

2 优于 1 和 3 的唯一优点是我不必删除 X(因为它原来是我提交的更改列表,而在其他情况下它仍然是“待定”)。

4

5 回答 5

47

最短的方法是:

$ p4 shelve -c #changelist -d
$ p4 submit -c #changelist
于 2013-04-11T09:46:22.800 回答
9

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

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

于 2013-04-08T13:43:30.243 回答
3

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

于 2013-04-08T11:53:50.100 回答
0

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

p4 submit -e 12345

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

p4 unshelve -s 12345
p4 submit ...
于 2014-04-08T15:19:48.190 回答
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
于 2018-08-22T09:58:41.310 回答