Как можно заблокировать ревизию Subversion в ветке от повторной интеграции в ствол? - PullRequest
0 голосов
/ 04 сентября 2018

Команда, в которой я работаю, использует Subversion в качестве менеджера контроля версий. Я хотел бы написать скрипт, который облегчит ветвление ветвей. Логика работает так:

  • Скопируйте ствол в ветку
  • Проверить филиал
  • Измените файл pom.xml, чтобы отразить, что это ветвь, изменив номер версии, атрибуты scm и т. Д. *
  • Регистрация изменений

Я бы хотел заблокировать эту регистрацию от реинтеграции, когда пользователь в конечном итоге

svn merge --reintegrate ^my/feature/branch

Поэтому, не обращая внимания на документацию в Красной книге SVN , я добавил следующий шаг в свою логику выше.

  • Переключиться на багажник
  • Выполнить svn merge -c 1234 - mybranch только для записи

Теперь, когда я пытаюсь перехватить свою ветку на ствол, я получаю сообщение об ошибке

svn: E195016: Reintegrate can only be used if revisions 1234 through 1236 were previously merged.

Что еще хуже, если я переключусь обратно на транк и произвожу слияние - реинтеграцию, я получу изменение, которое мне все равно не нужно.

Возможно ли то, что я пытаюсь сделать?

1 Ответ

0 голосов
/ 04 сентября 2018

Несмотря на то, что мое имя находится на обложке "Красной книги SVN", уже давно я много использовал Subversion для сложных ветвлений и слияния. Но я думаю, современный подход (по крайней мере, в Subversion 1.8) состоит в том, чтобы больше не использовать опцию --reintegrate для svn merge вообще, а вместо этого просто позволить Subversion отработать правильное слияние для выполнения. При этом ваша так называемая «заблокированная ревизия» (помеченная как уже слитая в результате слияния --record-only) должна быть исключена из набора ревизий, возвращаемых в вашу основную ветвь слиянием.

...