У меня есть специальный список изменений, и из командной строки я хочу перечислить все файлы, которые были частью этого списка изменений. Как это сделать?
Как перечислить все файлы, измененные списком изменений perforce
Ответ 1
Это команда describe. Чтобы описать конкретный список изменений, вы хотите p4 describe <changelist number>
.
Update:
Если вы хотите только имена файлов, вы можете использовать команду files с опцией -F для переопределения формата вывода: p4 -Ztag -F "%depotFile%" files @=<changelist>
Подробнее о опции -F см. http://www.perforce.com/blog/130826/fun-formatting.
Ответ 2
user114245 дал лучший ответ, но только в комментарии. Я добавляю в качестве ответа, чтобы сделать его более заметным и немного улучшить.
Для изменения 12345 это будет ближе всего к команде p4
p4 files @=12345
который дает только этот выход
//depot/file1#3 - delete change 3 (text)
//depot/file2#3 - edit change 3 (text)
//depot/file5#1 - add change 3 (text)
Если вы хотите удалить постороннюю информацию о каждом файле, вам необходимо обработать этот вывод через дополнительные инструменты в командной строке. Предполагая стандартную среду unixy, вы можете использовать одну команду sed
, например,
p4 files @=12345 | sed s/#.*//
чтобы получить желаемый результат
//depot/file1
//depot/file2
//depot/file5
принятый в настоящее время ответ от Майка - это
p4 describe 12345
который дает все эти дополнительные детали на выходе
Change 12345 by [email protected] on 2013/06/21 00:25:28
Some example changes
Affected files ...
... //depot/file1#3 delete
... //depot/file2#3 edit
... //depot/file5#1 add
Differences ...
==== //depot/file2#3 (text) ====
1c1
< This is file 2
---
> This is file 2 - edited
Это было улучшено с помощью Doug answer, который использует grep и awk, чтобы отфильтровать шум и просто оставить файлы изменены, но команда довольно длинная
p4 describe -s 12345 | grep '^\.\.\.' | awk '{print $2}'
Я думаю, что приведенное здесь решение более аккуратное.
Ответ 3
Ответ Майка О'Коннора тоже помог мне.
Что касается только того, что список файлов был изменен, не может ли это быть так просто, как это?
p4 describe -s {change number} | grep '^\.\.\.' | awk '{print $2}'
что я буду использовать.
Ответ 4
Если ваш список изменений еще не выполнен, вы можете запустить p4 opened
или p4 opened -c <changeListNumber>
для определенного (неполученного) списка изменений.
В официальной документации : Msgstr "Список файлов, открытых в ожидающих списках изменений."
Ответ 5
p4 change -o
Он имеет список файлов в конце.