Могу ли я обновить ветку из багажника, не выполняя слияние?
Вопрос
Я, наверное, просто не думал об этом, или, возможно, я просто не знаю о уже существующем варианте в Subversion (я, конечно, нет эксперта).
Мне просто интересно, если я создал филиал, чтобы начать работу над какой-то новой функцией, если есть более простой способ сохранить ветку на сегодняшний день стволСамые последние изменения без необходимости проходить всю неприятность слияния ряда изменений. Я хотел бы иметь возможность просто обновить и получить все изменения из багажника (а также Филиал, конечно), хотя мои преданные изменения влияют только на ветку. Это возможно? Делает то, что я прошу иметь смысл?
Я полагаю, что это на самом деле не обязательно отличается от объединения ряда изменений; Просто я использую Ankhsvn, который выполняет все эти проверки лучшего практики перед тем, как разрешить слияние, а иногда ощущение, что это намного сложнее, чем нужно. Идея состоит в том, что я хочу сохранить свою филиал втумиться с любыми коммитами, другими разработчиками, которые могут приносить к багажнику, чтобы, когда я в конечном итоге делать Слиньте мою ветку в багажник, все идет (как) гладко (насколько это возможно).
Решение
Поддержание вашей отрасли до свидания с последними регистрациями багажника называется слиянием.
Я знаю, что слияние может быть королевским кошмаром иногда, но это именно то, что слияние.
Другие советы
TL; DR; Нет, вы должны слиться, вот некоторые инструкции
Это не так плохо, как вы думаете, это. Я наброшу шаги от командировки, которую я использую. Я буду использовать Vimidiff, чтобы управлять конфликтами, которые вы можете использовать Meld или Hoodertore Diff Tooke, который вам нравится. Команды предшествуют Марку Hash '#'
<in branch first time from copy>
# svn log --stop-on-copy | tail
<read the revision that was the copy instruction in this case r229>
# cd ../../trunk
# svn up
<I make note of the latest rivision which is r334>
<now I go back to the branch>
# cd ../branches/branch
# svn merge -r229:334 svn://url.to.svn.server/project/trunk
<a whole bunch of stuff happens>
< now I check for conflicts >
# svn status | grep ^C
<which outputs something like>
C public/tools/Diagnostic.class.php
C public/domain/Report_Setup_Parameter.class.php
C public/modules/mReports.module.php
<I now revert all these and manually merge them>
# svn revert public/tools/Diagnostic.class.php
...
<revert done now manuall doinng the merge
# vimdiff public/tools/Diagnostic.class.php ../../trunk/public/tools/Diagnostic.class.php
...
<now all the changes are done>
# svn commit -m "Merging trunk into branch 'branch' r:229:334"
commited revision 335
Сделано, если вы делаете это регулярно, то не так много изменений. После первого слияния вам нужно использовать ревизию № последнего слива. Поэтому некоторое время в будущем команда будет смотреть в журнал SVN, чтобы найти, когда пересмотр последнего слияния был, в данном случае 335. Команда Merge будет выглядеть как Thuse
# svn merge -r335:370 svn://url.to.svn.server/project/trunk
Все остальные шаги одинаковы.
Идея состоит в том, что я хочу сохранить свою филиал в современном виде с любыми коммитарами, другими разработчиками могут приносить к багажнику, чтобы, когда я в конечном итоге объединяю свою ветку в багажник, все идет (как) гладко (насколько это возможно).
Для достижения того, что вам нужно сделать ассортимент слияния из багажника. На самом деле, это хорошая практика, чтобы сделать этот вид слияния в ветку время от времени, чтобы быть в курсе, когда происходит в багажнике.
Я не знаю о инструментах для Ankhsvn, но «Pure» SVN имеет очень хорошие инструменты, которые делают операции слияния довольно простыми. ТортосветВН это отличный инструмент для Windows, и если вам нравится NetBeans Существует очень хорошая графическая поддержка для слияния.
Я не знаком с Анкшсом, но то, что вы описываете, это именно то, что svn merge
это для. Так что ответ на ваш вопрос нет.
Тем не менее, вы можете проверить --reintegrate
Возможность увидеть, что это делает вашу жизнь проще.
Смотрите эти сообщения в блоге:
Subversion Merage Reintegrate
Subversion 1.5 слияние отслеживания в двух словах
Если вы используете phpstorm, вы можете попробовать использовать интерфейс GUIhttps://www.jetbrains.com/help/idea/2016.1/integrating-changes-To-from-feature-branches.html.