Как просмотреть Shelved P4 Changes?

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

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

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

9 ответов

Решение

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

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

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

p4 unshelve -s 1234 -c 2345

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

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

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

Давайте предположим, что список изменений 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>

Оба метода могут быть легко включены в язык сценариев выбора.

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

p4 print <file>@=<shelved_change>

"@" Означает "посмотреть на отложенное изменение", а "@" означает "посмотреть на изменение".

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

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

Строчные буквы s ограничивает вывод включением файловых различий.

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

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

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

Search - > Go To

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

Вы можете попробовать

      p4 -ztag describe <changeno>

Описание содержит строку под названием «... отложено», если оно отложено.

Другие вопросы по тегам