Представление ветви для файла, который был разбит на несколько файлов - PullRequest
2 голосов
/ 24 марта 2010

У меня есть большой исходный файл в 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 ]

3 голосов
/ 24 марта 2010

Я собирался предложить вам использовать оверлейное наложение (средство для принудительной обработки всех строк спецификации), но быстрое прочтение страницы обернулось этим:

Отображение наложения разрешено только на клиентские представления и не работают с виды веток.

Похоже, вам придется написать это. Эта страница содержит дополнительную информацию, которая может быть вам полезна (и подчеркивает тот факт, что это невозможно сделать, "Perforce не поддерживает 1: много отображений файлов." ).

0 голосов
/ 25 марта 2010

Просто для интереса, но почему?

Почему бы не включить файл great_file.c в Perforce, а затем изменить систему сборки, чтобы собрать ее из трех меньших исходных файлов с управлением исходным кодом. Или даже просто включите их, если вам нужна настоящая простота.

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

...