Я могу обновить ответвление от соединительной линии, не выполняя слияние?

Я, вероятно, просто не продумал это, или возможно я просто не знаю об уже существующей опции в Подрывной деятельности (я не, конечно, никакой эксперт).

Я просто задаюсь вопросом, если я создал ответвление, чтобы начать работать над некоторой новой возможностью, если существует более легкий способ усовершенствовать ответвление новых изменений соединительной линии, не имея необходимость проходить всю проблему объединить диапазон изменений. Я хотел бы иметь возможность просто обновить и получить все изменения от соединительной линии (и ответвление, конечно), в то время как мои зафиксированные изменения только влияют на ответвление. Действительно ли это возможно? Что я прошу иметь смысл?

Я предполагаю, что это действительно обязательно не отличается от слияния диапазона изменений; это просто, что я использую AnkhSVN, который выполняет все эти проверки лучшей практики прежде, чем позволить слияние, и иногда такое чувство, что это намного более сложно, чем это должно быть. Идея состоит в том, что я хочу усовершенствовать свое ответвление любых фиксаций, которые другие разработчики могут делать к соединительной линии так, чтобы, когда я в конечном счете объединяю свое ответвление в соединительную линию, все пошло (как) гладко (как возможное).

34
задан Michael Hackner 3 March 2010 в 15:20
поделиться

4 ответа

Поддержание вашей ветки в актуальном состоянии с последними чек-инами ствола называется слиянием.

Я знаю, что иногда слияние может быть королевским кошмаром, но это именно то, чем является слияние.

33
ответ дан 27 November 2019 в 16:50
поделиться

Идея в том, что я хочу сохранить свои {{1 }} ветвь обновлена ​​с любыми коммитами , которые другие разработчики могут вносить в ствол , поэтому, когда я в конце концов сделаю слияние своей ветки с стволом, {{1 }} все идет (как) гладко (насколько возможно ).

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

Я не знаю об инструментах для AnkhSVN, но «чистый» SVN имеет очень хорошие инструменты, которые делают операции слияния довольно простыми. TortoiseSVN - отличный инструмент для Windows, и если вам нравится Netbeans , есть также очень хорошая графическая поддержка слияния.

3
ответ дан 27 November 2019 в 16:50
поделиться

Я не знаком с AnkhSVN, но то, что вы описываете, как раз для svn merge . Так что ответ на ваш вопрос отрицательный.

Однако вы можете воспользоваться опцией - реинтегрировать , чтобы узнать, облегчит ли это вашу жизнь.

См. Эти сообщения в блоге:

Повторная интеграция слияния в Subversion
Вкратце об отслеживании слияний в Subversion 1.5

0
ответ дан 27 November 2019 в 16:50
поделиться

TL; DR; Нет, вы должны объединиться, вот несколько инструкций

Это не так плохо, как вы думаете. Я опишу шаги из командной строки, которую я использую. Я буду использовать vimidiff для управления конфликтами, вы можете использовать Meld или другой инструмент diff, который вам нравится. Перед командами стоит знак решетки «#»

<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. Команда слияния будет выглядеть как thuse

# svn merge -r335:370 svn://url.to.svn.server/project/trunk

Все остальные шаги такие же.

23
ответ дан 27 November 2019 в 16:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: