Сделать так, чтобы файл никогда не сливался в bzr

Ситуация:

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

Проблема:

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

Вопрос:

Можно ли (и как) исключить конкретный файл из слияния? Я хотел бы решение, которое не требует, чтобы я указывал это при каждом слиянии в качестве параметра, но если нет ничего другого, тогда я кусаю пулю.


person Mike Lischke    schedule 23.05.2014    source источник


Ответы (1)


Единственный способ исключить файл из слияния — вернуть его обратно сразу после слияния, до фиксации, например:

cd /path/to/repo/trunk
bzr merge ../branchA
bzr revert file/to/exclude
bzr commit -m 'merged from branchA'

Позже, когда вы снова выполните слияние из branchA, шаг bzr revert в середине необходим только в том случае, если файл изменился в branchA с момента последнего слияния. Так что, если файл меняется не очень часто, то «укусить пулю» может быть не так уж и плохо.

person janos    schedule 26.06.2014
comment
Ну да, но это требует ручного вмешательства каждый раз. Суть здесь в том, чтобы вообще избежать неприятностей. Мы постоянно объединяем определенные файлы и должны вернуть их позже. - person Mike Lischke; 27.06.2014
comment
Не обязательно каждый раз. Например, если файл меняется каждые 5 месяцев, а вы выполняете слияние каждый месяц, то в 80% случаев вам не потребуется дополнительный шаг. Если файл никогда не изменяется, вам никогда не понадобится дополнительный шаг (после первоначального слияния). Я понимаю вашу точку зрения, но другого выхода не вижу. - person janos; 27.06.2014