Как просмотреть изменения полки P4? - PullRequest
48 голосов
/ 13 октября 2011

Один из членов нашей команды (находится в другом регионе) отложил изменения в P4 со списком изменений 1234.

Теперь, если я хочу посмотреть, какие файлы модифицированы. Каковы изменения, как я могу это сделать?

Какую команду P4 я должен использовать, чтобы увидеть изменения, внесенные членом нашей команды?

Ответы [ 8 ]

54 голосов
/ 13 октября 2011

p4 describe -S 1234 следует хитрости, см. документацию по описанию .

Чтобы увидеть содержимое файла, вы бы отменили файлы в вашем рабочем пространстве (при условииу вас есть рабочее место для того же проекта, над которым работает ваш коллега).

Создайте новый (пустой) список изменений с помощью p4 change (например, 2345), затем используйте p4 unshelve ( document ), чтобы получить измененные файлы в рабочую область:

p4 unshelve -s 1234 -c 2345

Если вам больше не нужны измененные файлы в вашем рабочем пространстве, вы можете p4 revert -c 2345 их.

32 голосов
/ 12 июня 2013

С помощью графического интерфейса перейдите в Ожидание и удалите все фильтры, кроме пользователя, где вы поместите идентификатор другого разработчика. Оттуда вы сможете увидеть ее Changelists, в том числе те, которые хранят файлы. Щелкните правой кнопкой мыши значок Shelved Files и выберите Unshelve. Вам потребуется активная рабочая область, включающая файлы, которые вы пытаетесь отменить.

11 голосов
/ 03 июля 2015

Используя клиентский интерфейс, нажмите Ctrl + G.Диалоговое окно появляется.Выберите Список изменений в выпадающем списке и введите номер списка изменений.

8 голосов
/ 25 октября 2013

Предположим, что список изменений 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 голосов
/ 01 октября 2015

Решение jhwist хорошо, если вы хотите видеть различия файлов.

Если вы хотите видеть только отложенные файлы, используйте p4 describe -sS 1234.

Нижний регистр sограничивает вывод включением различий в файлах.

2 голосов
/ 26 апреля 2018

Если вы хотите увидеть фактическое содержимое файлов, вы можете использовать:

p4 print <file>@=<shelved_change>

@ = означает, чтобы посмотреть отложенное изменение, где @ означает, чтобы посмотреть на изменение.

1 голос
/ 02 августа 2016

В интерфейсе пользователя P4V выберите

Search - > Go To

, затем выберите тип списка изменений (в вашем случае «Ожидающий список изменений»), введите номер списка изменений и нажмите «ОК».

1 голос
/ 25 сентября 2013

Если вы хотите видеть только список файлов внутри ChangeList (будь то полка, ожидающий или отправленный CL), без дополнительных данных, grep результат:

p4 describe -S 12345 | grep -oP '(?=//).*(?=#)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...