Subversion Ветвление / Переключение - PullRequest
1 голос
/ 18 мая 2011

В настоящее время я всегда работал с GIT и был вполне доволен.

Из-за некоторых ограничений проекта мы взяли на себя уже запущенный проект, который недавно вышел на рабочую версию 1.0.

Теперь я хотел бычтобы перейти к стабильной версии 1.0, и мы продолжаем разработку в стволе.

Теперь моя структура выглядит следующим образом:

branche
--app-1.0

trunk
--app

Теперь два сценария: я продолжаю разрабатывать в стволе.Я исправляю ошибку, которая также попадает в версию 1.0.в одном классе Java.Изменяется только 1 строка кода.Как передать это в app-1.0 без переопределения «старого» класса, кроме как с помощью этой единственной строки?

2-й сценарий: кто-то просит меня проверить, есть ли ошибка.Я переключаюсь на app-1.0, нахожу ошибку, исправляю ее, случайно нахожу вторую ошибку, исправляю ее, фиксирую в app-1.0.Как передать это в транк?

Является ли команда слияния правильной в обоих случаях?

Что такое лучшие практики?

В моем GIT у меня всегда было другоенаоборот: я создал ветку app-1.0 app-2.0, где я занимаюсь разработкой, и когда я обнаружил, что она стабильна, я слил ее с транком, который всегда представлял мою стабильную версию.можете мне помочь: -)

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Для обоих сценариев: вы сливаетесь!

Из книги SVN:

Объединить ветку обратно в ствол (при условии, что у вас есть рабочая копия ствола и что ветвь была создана в ревизии 250):

$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch
U  myproj/tiny.txt
U  myproj/thhgttg.txt
U  myproj/win.txt
U  myproj/flo.txt

Если вы выполнили ветвь в редакции 23 и хотите объединить изменения в стволе с вашей веткой, вы можете сделать это из рабочей копии вашей ветки:

$ svn merge -r 23:30 file:///tmp/repos/trunk/vendors
U  myproj/thhgttg.txt

http://svnbook.red -bean.com / о / 1,0 / re16.html

1 голос
/ 18 мая 2011

Вы можете легко объединить одну ревизию из транка в ветку или из ветки в транк.Объединение - правильная команда.

Если у вас есть разветвленная ветвь, вы можете сделать:

svn merge -r <from_revision>:<to_revision> http://host/path/to/trunk

или

svn merge -c <revision> http://host/path/to/trunk

(-c эквивалентно -r <revision-1>:<revision>).

В SVN слияние работает, получая разницу между двумя ревизиями и применяя их к вашему рабочему каталогу.После слияния вы должны зафиксировать свои изменения.Если вы хотите объединить исправление ошибки из ответвления в ствол, перейдите в рабочий каталог своего ствола и объедините URL-адрес ответвления.

...