Как просмотреть изменения Shelved P4?
Один из членов нашей команды (расположенный в другом регионе) отложил изменения в P4 с помощью списка изменений 1234.
Теперь, если я хочу посмотреть, какие файлы изменены snf, каковы изменения, как я могу это сделать?
Что такое команда P4, которую я должен использовать, чтобы видеть изменения, внесенные нашим членом команды?
Ответы
Ответ 1
p4 describe -S 1234
должен обратиться к трюку, см. документацию по описанию.
Чтобы просмотреть содержимое файла, вы должны удалить файлы в своей рабочей области (при условии, что у вас есть рабочее пространство для того же проекта, над которым работает ваш коллега).
Создайте новый (пустой) список изменений с помощью p4 change
(например, 2345), затем используйте p4 unshelve
(document), чтобы получить измененные файлы в рабочее пространство:
p4 unshelve -s 1234 -c 2345
Если вы не хотите, чтобы измененные файлы в вашем рабочем пространстве были дольше, вы можете p4 revert -c 2345
их.
Ответ 2
Используя GUI, перейдите в Pending и удалите все фильтры, кроме как пользователем, где вы поместите другой идентификатор разработчика. Оттуда вы сможете увидеть ее евангелистов, в том числе тех, у которых есть отложенные файлы. Щелкните правой кнопкой мыши значок "Стеллажи файлов" и выберите "Удалить". Вам нужно будет иметь рабочее пространство, которое включает файлы, которые вы пытаетесь удалить.
Ответ 3
Используя клиент UI, нажмите Ctrl + G. Появится диалоговое окно. Выберите Changelist в combobox и введите номер списка изменений.
Ответ 4
Предположим, что список изменений 123456 является пересмотренным списком изменений. Как упоминалось в предыдущем ответе, способ перечислить файлы связан с этим списком изменений с помощью команды p4 describe -s <changelist>
. Например:
$ p4 describe -s 123456
Change 123456 by [email protected] 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/[email protected]=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/[email protected]=123456
...
<diff output here based on Perforce server diff algorithm>
Оба метода могут быть легко включены в выбранный язык сценариев.
Ответ 5
Решение jhwist является хорошим, если вы хотите видеть различия в файлах.
Если вы хотите видеть только полные файлы, используйте p4 describe -sS 1234
.
Нижний регистр s
ограничивает вывод из включения различий файлов.
Ответ 6
Если вы хотите видеть только список файлов внутри ChangeList (будь то полка, ожидающий или отправленный CL), без дополнительных данных, grep результат:
p4 describe -S 12345 | grep -oP '(?=//).*(?=#)'
Ответ 7
В интерфейсе P4V выберите
Search - > Go To
затем выберите тип списка изменений (в вашем случае "Ожидающий список изменений" ), введите номер списка изменений и нажмите "ОК".