Есть ли команда Perforce, чтобы найти список изменений, представленных непосредственно ранее, для данного отправленного CL в определенной ветке.
Например, в ветке //depot/temp/1.0 / ... я отправил CL11, CL22, CL36, CL49 и т. д., Поэтому для данного отправленного CL (CL36), как я могу узнать его непосредственный предыдущий CL, т.е. CL22 ?
Я попытался запустить изменения p4 //depot/temp/1.0 / ..., чтобы он дал мне весь список изменений, а затем я анализирую их, чтобы получить требуемый CL
Но я ищу прямую команду p4 для достижения этого
Следующая команда перечисляет все изменения в пути //depot/temp/1.0 / ...:
p4 changes //depot/temp/1.0/...
Следующая команда перечисляет все изменения до изменения 36:
p4 changes //depot/temp/1.0/...@36
Следующий список команд изменяет 36 и предыдущий:
p4 changes -m2 //depot/temp/1.0/...@36
Следующая команда отображает только изменение до изменения 36:
p4 changes -m2 //depot/temp/1.0/...@36 | tail -1
Следующая команда перечисляет только номер изменения перед изменением 36 (в вашем случае 22):
p4 changes -m2 //depot/temp/1.0/...@36 | tail -1 | cut -f2 -d' '
В дополнение к ответу Pitseeker, вот как сделать последние два без команд Unix:
Следующие команды перечисляют только изменение до изменения 36:
p4 changes -m1 "//depot/temp/1.0/...@<36"
p4 changes -m1 //depot/temp/1.0/...@35
(обратите внимание, что вам нужно использовать кавычки с синтаксисом @<
, иначе ваша оболочка будет рассматривать это как перенаправление. Я лично предпочитаю подход «вычесть 1» при выполнении подобных действий с номерами изменений - одно огромное преимущество, которое они имеют по сравнению с метками или фиксацией хеши ИМО заключается в том, что вы можете рассуждать о них как о числах.)
Следующая команда выводит только номер изменения перед изменением 36:
p4 -Ztag -F %change% changes -m1 //depot/temp/1.0/...@35