56

我们的一名团队成员(位于不同区域)已将 P4 中的更改搁置在更改列表 1234 中。

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

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

4

8 回答 8

64

p4 describe -S 1234应该诀窍,请参阅describe 上的文档

要查看文件内容,您可以将文件搁置到工作区中(假设您有一个工作区用于您的同事正在处理的同一个项目)。

p4 change使用(例如 2345 的结果)创建一个新的(空)更改列表,然后使用p4 unshelvedocu)将修改后的文件获取到您的工作区:

p4 unshelve -s 1234 -c 2345

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

于 2011-10-13T18:23:51.963 回答
32

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

于 2013-06-11T20:40:05.397 回答
13

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

于 2015-07-03T08:45:46.190 回答
11

让我们假设变更列表 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>

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

于 2013-10-25T01:07:59.223 回答
5

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

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

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

于 2015-10-01T13:59:53.957 回答
4

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

p4 print <file>@=<shelved_change>

@= 表示查看搁置的更改,@ 表示查看更改。

于 2018-04-25T21:48:39.207 回答
2

如果您只想查看ChangeList中的文件列表(无论是搁置、挂起还是提交的 CL),而不需要额外的数据,请 grep 结果:

p4 describe -S 12345 | grep -oP '(?=//).*(?=#)'
于 2013-09-25T09:29:27.043 回答
2

在 P4V UI 中,选择

Search - > Go To

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

于 2016-08-02T16:41:16.707 回答