2017-01-20 3 views
1

Вот сценарий -неволей: Как найти изменения, сделанные в ветке

  1. развитие филиала был создан из магистрали, со многими тысячами файлов в нем
  2. Несколько тысяч файлов были изменены.
  3. Изменения от основной линии были «p4 интегрированы» в ветку. Надеется, интеграция всегда включала в себя полную магистраль, как из заведомо исправной этикетки, но я не уверен в этом
  4. шаги 2 и 3 были повторено неизвестным количество раз - давайте догадаться дюжину интегрируются, и, возможно, другие 1000 или более изменения, обычно в файлы уже модифицированы

теперь я нахожусь в болезненном положении, пытаясь проверкам коды этого.

Есть ли какие-либо команды, которые могут помочь мне получить различия для каждого измененного файла между последней версией последней версии и версией в ветке?

Или мне нужно написать:

  1. скрипт, который будет идентифицировать все локально измененные файлы.
  2. скрипт, который будет найти точку интеграции для каждого файла в приведенном выше списке
  3. Другой сценарий, который будет использовать (2), чтобы очистить список в (1) файлов без каких-либо чистого изменения
  4. Обертка на (2), который будет выдавать соответствующую команду p4 diff2

FWIW, я в принципе знаю, как сделать это вручную, файл файлом. Это масштабный масштаб. Кроме того, есть изменения, которые все еще происходят в филиале, в ответ на отзыв отзыва кода, поэтому я, вероятно, буду повторно воссоздавать свои списки повторно.

+0

Если кто-то попросил меня пересмотреть пару тысяч изменений в несколько тысяч файлов, я бы просто молча смотрел на них, пока они не ушли. То есть у вас нет проблемы с инструментами, у вас есть проблема управления. Удачи! Но, с точки зрения инструментов, вы можете обнаружить, что P4V «папка diff» тоже полезна. –

+1

@ Брайан Я согласен, что у нас также есть нетехнические проблемы, и я тоже их работаю. Но в этом случае изменение должно быть просто перестановкой файлов заголовков, всего несколько строк на файл, без чистого эффекта.К сожалению, я нашел ошибки даже в этом, и теперь мы находимся на третьем этапе обзора. –

ответ

1

Если вы знаете, что известно, хороший лейбл в магистралью было то, что было использовано, чтобы сделать последнюю интеграцию, то это должно быть просто:

p4 diff2 main/[email protected] dev-branch/... 

поскольку для каждого файла «версия последней интегрированной» будет @ хороший лейбл. Файлы, которые не были локально изменены, не будут иметь никаких различий, поэтому нет необходимости их фильтровать.

FWIW Если бы я был в вашем положении, я бы использовал «p4 ichanges dev-branch/... main/...» и перешел в журнал изменений, поскольку diffs имеют больше смысла, когда каждый находится в контекст своего списка изменений, вместо того, чтобы смотреть на один различие монстров на файл, каждый из которых содержит дюжину несвязанных изменений.

Смежные вопросы