Предотвращение распространения изменений для отдельных файлов

Я работаю с потоками Perforce, следуя рекомендуемой основной модели. (релиз, основной поток и потоки разработки). Кроме того, мы используем нечетную/четную нумерацию выпусков (аналогично ядру Linux) с нечетными младшими номерами версий для разрабатываемых версий и четными младшими номерами для выпускных версий.

После исправления ошибки в потоке выпуска мне нужно обновить несколько файлов с информацией о версии, чтобы создать новую версию выпуска/установщик. Эти изменения версии нельзя объединять с основной веткой (только само исправление), потому что версия основной ветки уже увеличена до следующей разрабатываемой версии.

Теперь при слиянии из потока релиза в основной я получаю конфликты для всех файлов, содержащих информацию о версии. В настоящее время мне нужно вручную разрешить все конфликты, отменив изменение номера версии (сохранив версию разработки).

Пример:

  • Поток релизов начался с версии 2.4.0 (номер стабильной/выпускной версии)
  • Увеличить основную версию до 2.5 (следующая версия разработки)
  • Исправьте ошибку в потоке выпуска, увеличьте номер версии до 2.4.1.
  • Объединить изменения в основную ветку: принять исправление, вручную отменить конфликты в файлах версий

Есть ли способ исключить отдельные файлы/набор файлов из интеграции, чтобы мне не пришлось выполнять этот утомительный (и потенциально подверженный ошибкам) ​​ручной процесс? (Примечание: информация о версии отделена от кода.)


person Johannes S.    schedule 09.12.2015    source источник


Ответы (1)


Три возможных варианта:

1) Укажите эти файлы как «изолировать» в спецификации потока, чтобы изменения в них были изолированы, т.е. не включались в операции копирования/слияния.

2) Объедините изменения версии, но используйте "resolve -ay" (игнорировать), чтобы указать, что эти изменения следует игнорировать.

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

person Samwise    schedule 09.12.2015
comment
Номер 3 будет означать, что P4V всегда будет показывать зеленую стрелку для слияния потребностей, верно? - person Johannes S.; 09.12.2015
comment
Для № 1: если у меня есть несколько файлов с информацией о версии в потоке, нужно ли мне сопоставлять их по отдельности? Или можно использовать шаблон? IIUC, подстановочный знак ... работает только в конце шаблона, верно? - person Johannes S.; 09.12.2015
comment
Да обоим. Я бы выбрал вариант (1), если вам не нужно по-разному обрабатывать разные изменения в одном и том же файле, даже если это означает перечисление каждого файла в спецификации потока, поскольку после выполнения эти файлы никогда не будут отображаться в сливаться вообще. Возможность игнорировать отдельные изменения очень эффективна, но наивный пользователь может легко отменить ее с помощью более поздней копии, что вам, вероятно, не нужно. - person Samwise; 09.12.2015