Представление ветви для файла, который был разбит на несколько файлов
У меня есть большой исходный файл в Perforce, который был разделен на несколько небольших файлов в ветви. Я хочу создать представление ветвления, которое может с этим справиться, но 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.
2 ответа
Я собирался предложить вам использовать наложенное отображение (средство для принудительной обработки всех строк спецификации), но быстрое прочтение страницы обернулось этим:
Наложение сопоставлений разрешено только для клиентских представлений и не работает с представлениями ветвей.
Похоже, вам придется написать это. Эта страница содержит дополнительную информацию, которая может быть вам полезна (и подчеркивает тот факт, что это невозможно сделать: "Perforce не поддерживает 1: много отображений файлов".).
Просто для интереса, но почему?
Почему бы не включить файл great_file.c в Perforce, а затем изменить систему сборки, чтобы собрать ее из трех меньших исходных файлов с управлением исходным кодом. Или даже просто включите их, если вам нужна настоящая простота.
Другими словами, мне интересно, если вы пытаетесь использовать не тот инструмент для задачи, которую вы хотите сделать?