svn-слияние назад?

Я только что сделал слияние, и это, казалось, сработало назад, как я и ожидал. Мне интересно, сделал ли я это неправильно или это известная проблема?

У меня было 2 ветки Эксперимент / Ствол

Я сделал все, что хотел в эксперименте, и слил его обратно в багажник. Используя Черепаху, я щелкнул правой кнопкой мыши Эксперимент-> Слияние. Я выбрал «Объединить два разных дерева» и на этом все (оставил все остальное по умолчанию). Я проверил, чтобы было сказано, что Merge [Experiment] Revision Head TO [Trunk] Revision Head

Проблема в том, что он не применил различия к стволу ... он применил их к Эксперименту ... так что теперь Эксперимент стал моим "стволом", что, безусловно, противоположно тому, что я хотел.

Теперь мне пришлось svn-удалить магистраль и svn-скопировать содержимое эксперимента обратно в магистраль, чтобы исправить это (насколько я могу судить), но в будущем это не так, как это должно работать?

19.05.2009 20:09:52
5 ОТВЕТОВ
РЕШЕНИЕ

Если ваша рабочая копия находится в «Эксперименте», это то место, куда идет результат слияния.

Упомянутое от-до вас упомянуто, как построить diff, который будет применен, то есть он вычисляет разницу "от" x "до" y и применяет ее к рабочей копии.

Помощь TortoiseSVN объясняет это довольно прилично.

4
19.05.2009 20:21:35

Я бы посоветовал прочитать бесплатное Руководство SVN, Контроль версий с Subversion . Соответствующая глава здесь .

1
19.05.2009 20:11:46

Я думаю, что вы хотите выбрать «Реинтегрировать ветку», а не «Объединить два разных дерева»

Есть вопрос, который охватывает то, что вы хотите.

1
23.05.2017 12:22:45
Проблема в том, что я ошибся ... к «ветке» было применено множество исправлений, и она была стабильной, но на стволе выполнялась работа, и она не была стабильной. Я хотел слить стабильную ветвь обратно в ствол (чтобы включить работу, которая была сделана на нем). Логично, что ствол был «экспериментальным», а ветвь «стабильной». Из-за этого я не думал, что «Реинтегрировать ветку» было бы уместно.
Steven Evers 19.05.2009 20:54:26

Я думаю, что ваше основное недоразумение заключается в том, что вы не сливаетесь с чем- то, вы сливаетесь откуда- то.

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

2
19.05.2009 20:22:12
  1. Если вы хотите объединить с Trunk, вам нужно выполнить слияние с рабочей копией Trunk . Слияние производит локальные правки, которые затем необходимо зарегистрировать. Следовательно, целью слияния должна быть рабочая копия.

  2. Вы не понимаете, "К" и "ОТ".

    При слиянии двух URL вы просите Subversion вычислить изменения, необходимые для преобразования «FROM» в «TO», а затем применить эти изменения к рабочей копии.

В вашем случае вы попросили Subversion рассчитать изменения, необходимые для получения "ОТ" Эксперимента "К" Транку, и применили их к рабочей копии Эксперимента. Это сделает содержимое локальной рабочей копии вашей ветви Experiment идентичным Trunk, потому что именно это вы и просили Subversion.

Я предлагаю вам прочитать руководство.

3
19.05.2009 20:25:34