Как бороться с долгоживущей функцией ветки? - PullRequest
0 голосов
/ 22 апреля 2019

Я работаю над долгоживущей веткой функций. К сожалению, я не могу посвятить все свое время этой ветви функций, и мне приходится переключаться между основной магистралью для регулярного ежедневного кодирования и ветви функций, когда у меня есть свободное время.

Я пытаюсь объединить транк в ветвь функций, чтобы поддерживать ветвь функций в актуальном состоянии, но получаю множество конфликтов, и я просто понял, почему:

После разрешения конфликта я фиксирую фиксированный файл в Branch, однако версия этого транкин-файла НЕ изменяется. Это ВСЕГДА будет иметь конфликты слияния с файлом ветви, даже после разрешения конфликта. Например, см. Конфликт ниже:

First Conflict

Затем я устраняю этот конфликт, внося изменения в версию файла Branch, и затем фиксирую его в Branch. Ветка теперь выглядит так:

Branch after fixing conflict

Теперь, если я сделаю еще одно слияние, я все равно получу конфликт в строке 3, потому что версия магистрального файла не изменилась:

Still a conflict exists since Trunk version of the file was never changed

Вопрос : Как вы справляетесь с долгоживущими ветвями с точки зрения слияния и разрешения конфликтов?

1 Ответ

3 голосов
/ 23 апреля 2019

Какую версию SVN / TortoiseSVN вы используете?

Вы вносите mergeinfo изменений при слиянии от Магистрали до Ветви?

Насколько я могу судить, не должно быть конфликтов, если вы используете современную версию SVN (1.10.x или новее) и если вы вносите изменения mergeinfo правильно.

Свойство svn:mergeinfo автоматически поддерживается Subversion всякий раз, когда вы запускаете SVN Merge. Его значение указывает, какие изменения были внесены в данный путь был реплицирован в рассматриваемый каталог .

Дополнительные сведения см. В главе Mergeinfo и Previews svnbook .

...