Информация о слиянии Subversion, насколько это важно? - PullRequest
6 голосов
/ 23 марта 2012

Мне немного любопытно, как используется информация о слиянии в Subversion и с какими проблемами можно столкнуться, если информация о слиянии неверна?

Например, у меня есть разветвленные branch1 и branch2 от trunk. У меня также есть subbranch1 и subbranch2, происходящие из branch1. Представьте, что я сделал некоторые разработки в branch2, а затем реинтегрировал их обратно в транк, используя svn merge --reintegrate ^/branch2. Затем я хотел добавить эти изменения также к subbranch1 (извлекая их из trunk) и ошибочно использованную команду svn merge --reintegrate ^/trunk (добавив, таким образом, флаг --reintegrate к команде слияния и здесь, даже если subbranch1 не непосредственный предок trunk).

Какие проблемы это может вызвать в будущем?

Ответы [ 2 ]

3 голосов
/ 23 марта 2012

Информация о слиянии отслеживает эту информацию:

  • Отношения между ветвями (subbranch1 произошли от branch1, которые возникли от trunk и т. Д.)
  • Какие ревизии уже были объединены

Если информация о слиянии отсутствует или неверна, вам придется отслеживать слияния вручную, и это может привести к ошибкам.Используя информацию о слиянии, вы просто позволяете Subversion отслеживать всю эту информацию.

2 голосов
/ 23 марта 2012

Этот ответ устарел.Пожалуйста, используйте Subversion> = 1.6.


Ваш подход ветвления в целом опасен, но из-за аварии он еще хуже.

У вас будет много проблемпри повторном включении всех ветвей.

  • изменения, сделанные Branch2, могут выглядеть как удаления в Subversion.
  • сделанные вами удаления могут выглядеть как дополнения к Subversion.
  • theтрехстороннее сравнение может дать вам странные результаты (например, поместить один и тот же кусок кода в файл дважды)

Вы больше не можете доверять трехстороннему сравнению, вам нужно проверять каждое изменениевручную!

См. Что мама никогда не говорила вам о svn-ветвлении и слиянии для получения дополнительной информации.

PS Мне однажды пришлось что-то исправить.С тех пор мы используем зайчика (см. Ссылку).

...