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

StackOverflow https://stackoverflow.com/questions/2503988

Вопрос

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top