Специально существует команда interchanges
, которая выводит списки изменений между двумя ветвями, которые не были интегрированы с удобством branchspec
.
Есть ли что-то, что показывает списки изменений, которые были интегрированы чем-то вроде обратной стороны interchanges
, а также работают с branchspec
?
Больше интересует терминал perforce, а не p4v.
Спасибо
Я рекомендую выполнить p4 changes
в источнике, запустить p4 interchanges
между источником и целью, чтобы получить изменения источника, которые не были интегрированы, и сравнить эти два, чтобы найти те, которые были интегрированы.
Я также опишу два других подхода, которые я бы не рекомендовал, поскольку они немного сложнее (но вы можете найти их элементы полезными):
p4 changes -i
на целевом объекте, а затем выполните множество команд p4 files
, чтобы отфильтровать его до изменений, возникших в источнике.p4 integrated -b branch
, выполните множество команд p4 changes
, чтобы преобразовать записи интеграции в диапазоны списков изменений, а затем отсортируйте их в единый список.Узнать, был ли список изменений принудительно интегрирован в другую ветку, непросто. «p4 interchanges» может не сообщать обо всем, поскольку он полагается на метаданные и может «думать», что некоторые списки изменений были интегрированы.
Рассмотрим случай, когда CL10 был объединен с веткой B, а затем изменения были вручную отменены с помощью «p4 edit» вместо «p4 undo» на B. Затем, если вы запустите «p4 интегрировать» с CL10 perforce, вернется с сообщением «уже интегрировано». даже если кода больше нет (но, возможно, он должен быть).
Возможно, решение вашего вопроса может включать в себя объединение идей из ответа Сэма выше, «p4 interchanges», а также запуск «p4 интегрировать [-f]» в цикле, чтобы подтвердить, что набор списков изменений действительно был интегрирован. Это некоторая работа, так как необходимо учитывать выходные данные команд «p4 resolve» и «p4 diff / diff2».
Моя точка зрения: не полагайтесь исключительно на «обмены p4».