如何查看Shelved P4的变化?

时间:2011-10-13 17:43:50

标签: perforce shelve

我们的一名团队成员(位于不同地区)已将P4的变更搁置在变更清单1234上。

现在,如果我想查看哪些文件被修改snf有哪些更改,我该怎么办呢?

我应该使用什么P4命令来查看我们的团队成员所做的更改?

8 个答案:

答案 0 :(得分:53)

p4 describe -S 1234应该诀窍,请参阅the documentation on describe

要查看文件内容,您将取消隐藏文件到您的工作区(假设您的同事正在处理同一项目的工作区)。

使用p4 change创建一个新的(空)更改列表(结果显示为2345),然后使用p4 unshelvedocu)将修改后的文件导入您的工作区:

p4 unshelve -s 1234 -c 2345

如果您不想再在工作区中修改文件,可以p4 revert -c 2345

答案 1 :(得分:31)

使用GUI,转到Pending并删除除用户之外的所有过滤器,您将在其中放置其他开发者的ID。从那里你应该能够看到她的变更列表,包括搁置文件的变更列表。右键单击Shelved Files图标,然后选择Unshelve。您必须有一个活动工作区,其中包含您尝试取消搁置的文件。

答案 2 :(得分:11)

使用UI客户端,按Ctrl + G.出现对话窗口。在组合框中选择更改列表并输入更改列表的编号。

答案 3 :(得分:8)

我们假设更改列表123456是有问题的搁置变更列表。如前所述,列出文件的方式与该更改列表相关联是通过p4 describe -s <changelist>命令。像这样:

$ p4 describe -s 123456
Change 123456 by john.doe@JohnsBranch on 2013/10/24 15:38:10 *pending*

    [Shelving my changes for Jane.]
    Fix memory corruption caused by uninitialized pointer.

Affected files ...

... //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 edit

一旦你知道有问题的文件,有几种方法可以在没有相应工作空间的情况下对文件进行区分。方法#1是使用p4 print

$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1       > /tmp/old
$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c@=123456 > /tmp/new
$ diff /tmp/old /tmp/new    # Or use kdiff3, tkdiff, etc.
          ...
  <diff output here>

另一种方法是使用p4 diff2

$ p4 diff2 //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 //depot/branches/JohnsBranch/kernel/vm/pageutils.c@=123456
          ...
  <diff output here based on Perforce server's diff algorithm>

这两种方法都可以轻松地整合到所选的脚本语言中。

答案 4 :(得分:3)

如果你想看到文件的差异,jhwist的解决方案很好。

如果您只想查看搁置的文件,请使用p4 describe -sS 1234

小写s限制输出包含文件差异。

答案 5 :(得分:1)

如果您想在ChangeList中看到仅文件列表(无论是搁置,待处理还是已提交CL),如果没有额外数据,请查看结果:

p4 describe -S 12345 | grep -oP '(?=//).*(?=#)'

答案 6 :(得分:1)

在P4V UI中,选择

Search - > Go To

然后选择更改列表的类型(在您的情况下为“待定更改列表”),输入更改列表编号并单击“确定”。

答案 7 :(得分:1)

如果您想查看文件的实际内容,可以使用:

p4 print <file>@=<shelved_change>
<=> @ =表示查看搁置的更改,其中@表示查看更改。