Слияние слияния Eclipse в магистраль

Я пытаюсь объединить ветку разработки обратно в багажник моего репо. Шаги, которые я сделал:

  • Переключиться на trunk
  • проверить, что он обновлен, разрешить любые конфликты.
  • Перейдите в Team- > Merge
  • Выберите URL: ветка развития
  • Начало ревизии: Редактирование при создании ветки
  • End Revision: HEAD
  • OK

Это должно сделать волшебство - оно открывает представление syncronize, которое прекрасно, показывает мне все конфликты, но возникает проблема:

В редакторе сравнения я вижу два файла: Локальный файл | Удаленный файл (306)

Это действительно странно, номер ревизии удаленного файла на самом деле является одним из файлов в рабочей копии (соединительной линии), а также является содержимым. Локальный файл имеет содержимое файла в ветке.

Теперь стрелка правильно показывает, что я сливаюсь слева направо (ветвь в багажник). Это также происходит, когда я нажимаю ok.

НО Я могу только перемещать изменения справа налево!!! Это не то, что я хочу - я не хочу перезаписывать изменения в ветвях старым содержимым туловища. Я хочу переместить содержимое слева (ветвь) вправо (ствол). Но я не могу даже писать в нужный файл.

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

Некоторая ошибка в Subversive?

спасибо, Мартин

Ответ 1

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

Если ваш клиент и репозиторий оба по крайней мере в SVN1.5, возможности Subversive new merge лучше, но все же опасны, как показано этот поток.

Поскольку Subversive был изменен для SVN 1.5, все поведение слияния изменилось. Одна вещь, которая мне очень понравилась, - это возможность выбирать, какие изменения я хочу, применить к моей рабочей копии, а затем зафиксировать сундук.
Subversive теперь больше не делает этого, но заставляет все изменения на вашу рабочую копию, а затем вы выбираете, что помещать в багажник.

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

Ответ 2

Ну, сначала это показалось загадочным, теперь я получу достойный удар по обновлению этого ответа для всех. Это касается слияния с использованием Subversive-клиента SVN для Eclipse:

Вы правильно делаете свое слияние, начиная с Trunk, а затем указывая на свой файл в своем локальном Branch. Ваши файлы открываются в окне "Сравнение текста" на вкладке "Синхронизация команд". Если вы не видите конфликты в левой колонке навигации, то ваше слияние только что произошло. Да, это запутанно и неинтуитивно.

Что предлагает окно сравнения текста, вы можете отменить свое изменение (или любые другие, которые могли попасть в ваш объединенный файл), прежде чем вы его совершите. Помните, что вы втягиваете файл из Branch, поэтому идея заключается в том, что файл Branch находится в Trunk, но в виде виртуального limbo, пока, наконец, не будет зафиксирован, а изменение или уничтожение нежелательных изменений здесь ссылается на файл в Branch (очевидно). Вот почему у вас есть только односторонний канал (Trunk to Branch), чтобы перезаписать те, которые были сгруппированы в Trunk, через вашу рабочую копию. Ваше слияние произошло, но оно еще не совсем официально.

Если все выглядит так, как нужно, щелкните правой кнопкой мыши файл в окне навигатора (левая панель в моей установке Eclipse Helios) и выберите "Принять" в раскрывающемся списке. Затем перейдите на вкладку просмотра основного кода (при установке PHP, но это может быть то, что вы используете), а затем передайте файл в Trunk.

Если вы хотите протестировать это, перед обработкой просмотрите файл "как есть" в Trunk, и вы увидите, что ваши изменения отражены там, если вы правильно выполнили свое слияние. Это похоже на то, как он работает для меня на OSX Snow Leopard Macbook Pro. Не уверен, что это то же самое для Windows или Linux. Я предполагаю, что это по сути тот же самый/подобный процесс.

Ответ 3

это легко

проверить багажник с проверкой как... дать другое название проекта.

Теперь у вас есть как локальная, так и рабочая копия, туловище, которое вы хотите совершить, и ветку, над которой работаете, и чьи изменения вы перешли в репозиторий. Теперь отредактируйте проект магистрали (и я имею в виду проект, а не отдельные файлы) - merge - выберите проект ветки (опять же PROJECT) принять все изменения в локальной копии совершить то, что вам нужно для ствола, используемого для все отлично, удалите сундук и продолжайте работать в ветке

особенно с ветвями, это кажется очень легким и работает как прелесть для меня