Слияние из ветки в магистраль с помощью "Объединить диапазон ревизий"

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

  •  13-09-2019
  •  | 
  •  

Вопрос

Я несколько раз сливался подобным образом в Subversion / TortoiseSVN:

Способ А:

  • 1) Я меняю магистраль и фиксирую.

  • 2) Я вношу другие изменения в ветку и фиксирую.

  • 3) В рабочей копии из магистрали:Я сливаюсь из ветки, используя TortoiseSVN "Объединить ряд ревизий".

  • 4) Затем я фиксирую магистраль и удаляю ветку.

Тем не менее, TortoiseSVN-руководство пользователя рекомендует следующее вместо 3) и 4):

Способ В:

  • 3*) В рабочей копии из филиала:Объедините изменения из trunk, используя команду TortoiseSVN "Объединить диапазон ревизий".

  • 4*) Зафиксируйте ветку, включая изменения магистрали.

  • 5*) В рабочей копии из магистрали:Объедините изменения из ветки, используя команду TortoiseSVN "Реинтегрировать ветку".

  • 6*) Зафиксируйте магистраль и удалите ветку.

Я нахожу это намного проще и не нашел причины, почему я не должен делать это именно так.

Каковы аргументы для метода B или A при слиянии из ветви обратно в магистраль?

Это было полезно?

Решение

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

Это позволяет медленное разрешение о слиянии внутри ваша "ветка", с возможными промежуточными фиксациями.
Затем, когда все будет сделано, вы можете выполнить тривиальное слияние обратно в trunk.
Таким образом, вам не нужно откладывать коммиты только потому, что вы объединяетесь на магистрали (поскольку на магистрали должны быть разрешены только стабильные коммиты).

Считаете ли вы вредным использование подхода "А"?

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

Но если результат заранее не определен, то определенно рекомендуется подход "B", который позволяет вам изучить результат слияния в вашей собственной ветке, прежде чем воздействовать на "магистраль".

Оба подхода полезны, следует стремиться применять не только один или только другой, но и тот, который наиболее адаптирован к конкретной ситуации.

Другие советы

Относительно Объединить диапазон ревизий против Реинтегрировать филиал:

Следующий Метод B приводит к наличию двух видов коммитов в ветке:

  1. Изменения, уникальные для ветви
  2. Магистральные изменения выбираются из магистрали путем выполнения последовательных Объединить диапазон ревизий

При обратном объединении с магистралью вы должны выбирать только изменения, уникальные для ветви.Это делается с помощью Реинтегрировать филиал.

Используя Объединить диапазон ревизий в конце в магистраль будет внесено сочетание как дублированных изменений магистрали, так и изменений частной ветки.

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