2011-01-17 3 views
3

Самый ответственный вопрос, который я когда-либо писал для SO:Могу ли я слить слияние без указания первой ревизии?

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

кд/теги производства
SVN слияние -r N: M ^/Ствол
svn ci -m 'слияние магистрали через rxxxx к производству

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

ответ

4

Я не пробовал это сам, но, согласно документации subversion, the mergecommand is smart enough to include only not previously merged changes.

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

svn merge -r 0:M ^/trunk 

Необходимо объединить изменения уже не объединены в рабочую копию до пересмотра М.

+0

+1 Вы также можете просто полностью опустить диапазон ревизий, а Subversion просто объединит все версии, которые могут быть сгруппированы. –

+0

@Wim: да, это правильно, но похоже, что rob нужно объединить только * последовательные одобренные ревизии с багажника *. –

+0

@ Антонио: Правильно, я просто указываю на эту функцию, потому что многие люди не понимают, что вы можете опустить диапазон ревизий. –

0

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

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

+0

Svn-клиент сообщает о синтаксической ошибке и запрашивает второй номер ревизии. Поэтому проблема заключается не в том, что она пытается объединить одну ревизию. –

+1

Нет, для одной ревизии используется синтаксис '-c N'. –

 Смежные вопросы

  • Нет связанных вопросов^_^