Продолжение этой статьи
Долгое время в ветках SVN был один существенный недостаток. Система не помнила мержей, и программисту приходилось самостоятельно заботиться о том, что бы сохранить номер ревизии, когда происходило копирование изменений из транка. Проблема частично решалась добавлением комментариев в лог, но все таки это было чревато ошибками, и целиком ложилось на совесть программиста.
В версии 1.5, наконец-то, программисты Subversion выполнили свое давнее обещание, и добавили несколько полезных фич для работы с ветками.
Итак, в версии 1.5 команда merge обзавелась двумя новыми опциями: --record-only и --reintegrate.
Теперь ответственность за контроль копирования изменений ложится целиком на плечи SVN (merge tracking), а программист может легко, и без боязни выполнять merge так часто, словно это команда update.
Теперь совершенно не нужно заботится о сохранении номера ревизии последнего мержа. SVN поумнел настолько, что сам копирует только те изменения, которых у вас еще нет. Если раньше вам приходилось указывать диапазон ревизий с помощью ключа -r то теперь достаточно просто выполнить команду
И SVN сам все поймет:
Второе полезное изменение связано с копированием ваших изменений в транк. И снова SVN великодушно заботится о нас, и сам копирует только те изменения, которых нет в транке.
Эта команда объединит вашу ветку с транком. Снова никаких лишних движений, все очень просто.
Опция --record-only используется для того что бы пометить диапазон ревизий, как слитые. То есть в следующий раз svn не будет пытаться скопировать изменения из этих ревизий в вашу ветку.
Теперь все изменения из диапазона ревизий 155:157 будут проигнорированы.
Появилась допонительная опция у комманд svn log и svn blame
И еще одна полезная опция svn mergeinfo, с помощью которой можно посмотреть какие ревизии уже смержены:
Или какие изменения еще могут быть скопированы из транка:
Как всегда, подробнее, можно прочесть в svnbook
Долгое время в ветках SVN был один существенный недостаток. Система не помнила мержей, и программисту приходилось самостоятельно заботиться о том, что бы сохранить номер ревизии, когда происходило копирование изменений из транка. Проблема частично решалась добавлением комментариев в лог, но все таки это было чревато ошибками, и целиком ложилось на совесть программиста.
В версии 1.5, наконец-то, программисты Subversion выполнили свое давнее обещание, и добавили несколько полезных фич для работы с ветками.
Итак, в версии 1.5 команда merge обзавелась двумя новыми опциями: --record-only и --reintegrate.
Теперь ответственность за контроль копирования изменений ложится целиком на плечи SVN (merge tracking), а программист может легко, и без боязни выполнять merge так часто, словно это команда update.
Теперь совершенно не нужно заботится о сохранении номера ревизии последнего мержа. SVN поумнел настолько, что сам копирует только те изменения, которых у вас еще нет. Если раньше вам приходилось указывать диапазон ревизий с помощью ключа -r то теперь достаточно просто выполнить команду
#svn merge svn://svnserver/var/bump/trunk
И SVN сам все поймет:
--- Merging r154 through r155 into '.':
U app/view/blogs/view.tpl.html
Второе полезное изменение связано с копированием ваших изменений в транк. И снова SVN великодушно заботится о нас, и сам копирует только те изменения, которых нет в транке.
svn merge --reintegrate svn://svnserver/var/bump/branches/my-branch
Эта команда объединит вашу ветку с транком. Снова никаких лишних движений, все очень просто.
Опция --record-only используется для того что бы пометить диапазон ревизий, как слитые. То есть в следующий раз svn не будет пытаться скопировать изменения из этих ревизий в вашу ветку.
#svn merge -r155:157 --record-only svn://svnserver/var/bump/trunk
Теперь все изменения из диапазона ревизий 155:157 будут проигнорированы.
Появилась допонительная опция у комманд svn log и svn blame
svn log --use-merge-history --limit 3
------------------------------------------------------------------------
r155 | rvk | 2008-11-24 15:22:04 +0300 (Пнд, 24 Ноя 2008) | 1 line
Merged via: r156
fixed small bug
------------------------------------------------------------------------
r154 | rvk | 2008-11-24 14:15:29 +0300 (Пнд, 24 Ноя 2008) | 1 line
new branch named new_design
------------------------------------------------------------------------
И еще одна полезная опция svn mergeinfo, с помощью которой можно посмотреть какие ревизии уже смержены:
#svn mergeinfo svn://svnserver/var/bump/trunk
Или какие изменения еще могут быть скопированы из транка:
#svn mergeinfo svn://svnserver/var/bump/trunk --show-revs eligible
Как всегда, подробнее, можно прочесть в svnbook