Подтвердить что ты не робот

Могу ли я обновить ветку из магистрали без выполнения слияния?

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

Мне просто интересно, если я создал ветку, чтобы начать работу над какой-то новой функцией, если есть более простой способ удержать филиал в актуальном состоянии с последними версиями ствола без необходимости преодолевать все проблемы о слиянии диапазона пересмотров. Я хотел бы иметь возможность просто обновлять и получать все исправления от соединительной линии (и ветки, конечно), в то время как мои зафиксированные изменения влияют только на ветвь. Это возможно? Делает то, что я прошу, имеет смысл?

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

4b9b3361

Ответ 1

Сохранение вашей ветки до даты с последней регистрацией сундуков называется слиянием.

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

Ответ 2

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

Это не так плохо, как вы думаете. Я опишу шаги из командной строки, которые я использую. Я буду использовать vimidiff для управления конфликтами, которые вы можете использовать в Meld или другом инструменте diff, который вам нравится. Перед командами предшествует символ 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. Команда слияния будет выглядеть как thuse

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

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

Ответ 3

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

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

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

Ответ 4

Я не знаком с AnkhSVN, но то, что вы описываете, - это именно то, для чего svn merge. Поэтому ответ на ваш вопрос - нет.

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

Смотрите эти сообщения в блоге:

Слияние конвертации Subversion
Отслеживание слияния Subversion 1.5 в двух словах