Представление ветвления для файла, который был разделен на несколько файлов.
-
22-09-2019 - |
Вопрос
У меня есть большой исходный файл в Perforce, который разделен на несколько файлов меньшего размера в ветке.Я хочу создать представление ветвления, которое сможет справиться с этим, но принудительно (2009.1) видит только последний из нескольких файлов.Например, я создал:
p4 integrate //depot/original/huge_file.c //depot/new/huge_file.c
Позже я разделил огромный файл на более мелкие:
p4 integrate //depot/new/huge_file.c //depot/new/small_file_one.c
p4 integrate //depot/new/huge_file.c //depot/new/small_file_two.c
p4 integrate //depot/new/huge_file.c //depot/new/small_file_three.c
Затем отредактируйте каждый из них (включая //depot/new/huge_file.c
) и отправить.
Теперь я вношу изменения в //depot/original/huge_file.c
и я хочу интегрировать эти изменения в //depot/new
.Если я делаю это вручную, все работает нормально:
p4 integrate //depot/original/huge_file.c //depot/new/huge_file.c
p4 integrate //depot/original/huge_file.c //depot/new/small_file_one.c
p4 integrate //depot/original/huge_file.c //depot/new/small_file_two.c
p4 integrate //depot/original/huge_file.c //depot/new/small_file_three.c
Но я не хочу делать это каждый раз при интеграции — такого рода вещи относятся к представлению ветвей.
К сожалению, если представление ветки включает один и тот же исходный файл несколько раз, последующие строки переопределяют предыдущие.Как я могу создать такое представление ветки:
//depot/original/huge_file.c //depot/new/huge_file.c
//depot/original/huge_file.c //depot/new/small_file_one.c
//depot/original/huge_file.c //depot/new/small_file_two.c
//depot/original/huge_file.c //depot/new/small_file_three.c
Когда я интегрирую с использованием этой спецификации ветки, я получаю интегрированный только small_file_three.c.
Решение
Я собирался предложить вам использовать наложение карт (средство принудительной обработки всех строк спецификации), но быстрое прочтение страницы поставило точку в этом:
Оценные отображения разрешены только для представлений клиентов и не работают с видами филиалов.
Похоже, вам придется написать сценарий. Эта страница содержит дополнительную информацию, которая может быть вам полезна (и подчеркивает тот факт, что это невозможно сделать, «Perforce не поддерживает сопоставления файлов 1:много».).
Другие советы
Просто ради интереса, а зачем?
Почему бы не использовать «huge_file.c» не в Perforce, а затем изменить свою систему сборки, чтобы собрать его из трех меньших исходных файлов с контролируемым исходным кодом.Или даже просто #include их, если вам нужна настоящая простота.
Другими словами, мне интересно, не пытаетесь ли вы использовать неправильный инструмент для задачи, которую хотите выполнить?