Найдите все филиалы, в которых был интегрирован CL

Итак, мне нужно решить следующую проблему:

  1. Я отправил CL 100 на // branch1
  2. Позднее этот CL был интегрирован из // branch1 в // branch2 в CL123.
  3. Из интеграции // branch2 CL123 был позже интегрирован в // branch3 и // task / branch4.
  4. Позже он был интегрирован из // task / branch4 примерно в 35 других веток с использованием других веток на пути.

Допустим, у меня около 100 веток, в которые можно интегрировать CL, но моя задача - найти все ветки, в которых был интегрирован исходный CL100.

Как это сделать? Мои товарищи по команде делали это вручную (на поиск всех веток уходят часы, а иногда и дни).

Мне просто интересно, есть ли какой-нибудь инструмент для перечисления всех ветвей, в которые был интегрирован исходный CL? Если его нет, что было бы начальной отправной точкой для написания скрипта для этого?

Я пробовал использовать

p4 -ztag changes -i //depot/...@123,@123 

но он показывает только историю интеграции CL - не совсем то, что я ищу.


61
1

Ответ:

Решено

Графический вариант - использовать инструмент Revision Graph. Откройте файл в Revision Graph, выберите ревизию, используйте опцию «Выделить потомков», затем отфильтруйте «Показать только выделенные файлы».

https://alm.developpez.com/cours/perforce/conseils/images/image5.png

Если вы хотите реализовать это самостоятельно в коде, по сути, он просто рекурсивно запускает p4 filelog, а затем выполняет простой поиск графа по полученной структуре. К сожалению, P4V не является открытым исходным кодом, но базовая структура данных IIRC Revision Graph все еще та же, что и в старом моде Half-Life, который аналогичным образом показывал историю ветвлений; это было бы отправной точкой (заранее прошу прощения у всех, кто читает этот код - это был буквально мой первый проект кодирования C++, так что он немного грубоват): https://swarm.workshop.perforce.com/files/guest/sam_stafford/p4hl/src/dlls/FileLogCache.h

https://swarm.workshop.perforce.com/view/guest/sam_stafford/p4hl/screenshots/jpg/p4hl1.jpg?v=%231