я могу объединить SVN без указания первой ревизии? - PullRequest
3 голосов
/ 18 января 2011

Самый пикантный вопрос, который я когда-либо отправлял на SO:

myproject / tags / production всегда содержит готовую версию myproject.Я объединяю последовательные утвержденные ревизии из ствола в него следующим образом, где N - текущая текущая версия, а M - новая желаемая версия:

теги CD / production
svn merge -r N: M ^ /trunk
svn ci -m 'объединяет магистраль через rxxxx в производство

Мой вопрос: почему я всегда должен указывать N?Если я просто использую «-r M», я получаю «svn: требуется вторая редакция».Но N всегда совпадает с моим предыдущим M, и я подумал, что точка отслеживания слияния (у нас svn 1.6) была такова, что svn запоминает ревизии, которые вы уже слили ..?

Ответы [ 2 ]

4 голосов
/ 18 января 2011

Я сам не пробовал, но, согласно документации Subversion, команда merge достаточно умна, чтобы включать только не ранее объединенные изменения .

Но если вы неЯ не хочу включать все версии ствола, которые вы можете попробовать:

svn merge -r 0:M ^/trunk

Он должен объединить изменения, еще не объединенные с вашей рабочей копией , до версии M .

0 голосов
/ 18 января 2011

Теоретически, Subversion может делать то, что вы просите, и разрешить автоматическое слияние до указанной точки.Вероятно, проблема в том, что «-r M» означает одну ревизию M, тогда как объединение - это операция с диапазоном ревизий.Неявное преобразование параметра типа с одной ревизией в параметр диапазона ревизий не является хорошей идеей.

Subversion должна прекрасно выполнять отслеживание слияний, если ревизии не указаны вручную.

...