Найти все ветки, в которые была интегрирована 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, а не совсем то, что мне нужно.


person Rafał Praczyk    schedule 12.09.2018    source источник


Ответы (1)


Графический вариант заключается в использовании инструмента «График изменений». Откройте файл в 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

person Samwise    schedule 12.09.2018