Представление ветви для файла, который был разбит на несколько файлов

У меня есть большой исходный файл в 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, а затем изменить систему сборки, чтобы собрать ее из трех меньших исходных файлов с управлением исходным кодом. Или даже просто включите их, если вам нужна настоящая простота.

Другими словами, мне интересно, если вы пытаетесь использовать не тот инструмент для задачи, которую вы хотите сделать?

Другие вопросы по тегам