WedX - журнал о программировании и компьютерных науках

Является ли слияние слияния проблемой в Subversion?

Вот ситуация: на определенной ветке некоторые изменения были объединены в из ствола, а также изменения ветки были объединены обратно в ствол.

У меня такой вопрос: что делает управление слиянием в Subversion, если я попытаюсь слить обратно в ствол из ветки ревизии, которая сама по себе была просто слиянием из магистрали в ветку?

Это вызовет проблемы? Если да, то какие? Или это должно быть совершенно нормально?

Или новое слияние просто обрабатывает эти изменения, как и любые другие, и просто пытается применить их?

02.09.2009

Ответы:


1

Это сценарий, с которым даже отслеживание слияния более новых версий SVN не может справиться автоматически. Таким образом, вы указали ревизии, которые вы хотите объединить обратно в магистраль вручную, и вы должны убедиться, что исключили ревизии, которые сливаются из магистральной ветки.

Если вы попытаетесь повторно объединить изменения, которые уже присутствуют в стволе, они будут рассматриваться как обычные модификации. Это неизбежно приведет к конфликтам.

02.09.2009

2

Это частично зависит от того, какую версию svn вы используете.

До версии 1.5 вообще не было отслеживания слияний, поэтому вам приходилось объединять нужные вам ревизии обратно. Большинство людей использовали для этого имя сценария «svnmerge». Вы можете использовать это, если хотите, и пометить ревизии, которые вы уже сделали, как объединенные - после этого svnmerge поможет вам выбрать правильные ревизии и пропустить те, которые уже объединены.

1.5 (и более поздние версии) обеспечивает некоторое отслеживание слияния, но оно еще не полнофункционально. В вашем конкретном случае (слияние обоих способов) я не думаю, что отслеживание svn может справиться с этим. Вам, вероятно, потребуется объединить каждую ревизию, которую вы хотите, туда и обратно вручную.

Лично, когда я работаю над проектами, использующими svn, я предпочитаю делать ветки несколько недолговечными и объединять их только в одну сторону (магистраль в ветвь) до окончательного слияния из ветки в магистраль. Как только я это сделал, я либо сливаю все в ствол и закрываю ветку, либо сливаю то, что хочу, и закрываю ветку. Я почти никогда не поддерживаю ветку из-за возможных проблем со слиянием (легко ошибиться).

02.09.2009

3

Используя 1.5 или более позднюю версию subversion, вы должны указать опцию --reintegrate для слияния svn, чтобы слияния были только копиями предыдущих слияний «наоборот».

Обратите внимание, что 1) Вам решать, когда следует использовать эту опцию 2) Это будет самое последнее слияние из этой ветки. После этого слияния svn будет считать ветку мертвой, и дальнейшая работа потребует уничтожения и повторного создания ветки.

Это прямо из svn docs, хотя в документах можно было бы использовать более точную разбивку на подразделы.

02.09.2009
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: [email protected]