Как объединить ветку CVS в HEAD с помощью инструментов слияния Eclipse? - PullRequest
35 голосов
/ 10 февраля 2009

В настоящее время я работаю в ветке, которую создал, используя Team -> Branch. Как мне использовать Team -> Merge, чтобы объединить мои изменения с веткой в ​​голову?

Ответы [ 6 ]

49 голосов
/ 27 мая 2011

У меня тоже были проблемы с этим. Вот шаги, которые я предпринимаю для слияния (в основном из онлайн-справки Eclipse):

  1. Когда я делаю свою ветку разработки ( Team -> Branch ), я гарантирую, что у меня есть корневой тег, созданный для ветви, этот тег CVS будет использовать для определения того, какие изменения связаны с веткой, а какие возможно, было совершено из других усилий
  2. Я завершаю разработку в ветке и фиксирую ( Team -> Commit ) все изменения обратно в хранилище
  3. Теперь, когда все мои изменения для ветки находятся в репозитории, я загружаю целевую ветвь, в которую я хочу слиться, обычно HEAD ( Team -> Switch to Another Branch или Version )

Теперь вы готовы начать фактический процесс слияния. Здесь вы будете выбирать, какие изменения должны быть внесены, а какие следует отменить. Думайте об этом процессе как о полуавтоматическом цикле разработки, фактически проверке, внесении изменений, цикле фиксации. Только вместо того, чтобы вставлять изменения вручную, у вас есть инструменты для сравнения. В конце концов, вы уже сделали все изменения кода в своей ветке!

Для слияния:

  1. Команда -> Слияние
  2. Ветка или версия для объединения (конечный тег): это имя вашего тега ветви разработки
  3. Common Base Version: Это имя вашего корневого тега для ветви (помните шаг 1 из предыдущего раздела?). Это должно было быть автоматически заполнено инструментом, но если нет, добавьте его самостоятельно
  4. Мне нравится Предварительный просмотр слияния в режиме синхронизации , чтобы я мог убедиться, что ничего не входит, чего не должно быть. В зависимости от вашей храбрости, этот вариант я бы предложил. Нажмите кнопку Готово
  5. Появится перспектива синхронизации, и любые различия, обнаруженные между вашей целевой ветвью и вашей исходной ветвью, будут показаны в расширяемом списке слева
  6. Для любого файла вы можете открыть его в инструменте сравнения, чтобы увидеть, что это было раньше, и объединить изменения по отдельности (не забудьте сохранить файл, когда закончите!) Или вы можете щелкнуть правой кнопкой мыши по файлу и выбрать слияние из расширяемого списка. Если вы выполняете слияние вручную с инструментом сравнения, вы можете выбрать «Пометить как объединенное» в раскрывающемся списке, чтобы удалить файл из списка задач.
  7. Как только вы решили, что делать с файлом, он будет удален из списка. Цель состоит в том, чтобы действие каждого файла
  8. Теперь, когда все ваши изменения объединены, вернитесь в перспективу Java и выберите Команда -> Синхронизировать с репозиторием , перспектива Синхронизировать вернется.
  9. На этот раз выберите Подтвердить, чтобы поместить все ваши изменения в хранилище.
  10. Fin!

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

Справка Eclipse SDK - Объединение ветви

7 голосов
/ 10 февраля 2009

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

Например, если вы хотите объединить свои изменения в HEAD, убедитесь, что проект используется совместно с HEAD в вашем рабочем пространстве (а не в ветви, над которой вы работали). Для этого выберите проект и выберите Team > Replace With > Another Branch or Version в контекстном меню. Затем выберите ветку для замены.

С этого момента выберите Team > Merge, а затем выберите ветку, которую хотите объединить в HEAD.

4 голосов
/ 09 июня 2011

Я согласен, что это работает наоборот, если изменения в YOUR_BRANCH необходимо обновить до HEAD,

1) зафиксировать изменения в YOUR_BRANCH 2) поменять местный филиал на HEAD 3) объединить HEAD с изменениями, внесенными в YOUR_BRANCH

поэтому вам нужно быть в HEAD и "принимать" изменения с YOUR_BRANCH (вместо отправки изменений с YOUR_BRANCH в HEAD).

1 голос
/ 21 марта 2011

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

  • Как уже говорилось, убедитесь, что ваша ветвь определения (обычно голова) уже проверена.
  • Затем выделите файлы, которые, как вы знаете, изменились в вашей ветке (или в целом проекте), и выберите Team -> Merge. В появившемся диалоговом окне выберите «Branch or version to be merged (end tag)», ветвь источника вы хотите взять свой файлы из.
  • В моем случае это авто заполнен "Common base version (start tag)", но если это не так, то это будет тег, который был создан когда была создана ветка.

При предварительном просмотре изменений они появятся в обычном представлении синхронизации CVS. Когда вы объединяете файлы, они будут перенесены в вашу локальную рабочую область (которая ранее была вашей целевой веткой) как изменения. На этом этапе вам необходимо зарегистрировать их в CVS.

0 голосов
/ 15 апреля 2010

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

Однако я нашел хак, который отлично работает, который я описал в своем блоге .

0 голосов
/ 18 марта 2009

Я тоже боролся с этим, и приведенный выше ответ не помог, пока я не установил переключатель «Выполнить объединение в локальное рабочее пространство».

К сожалению, я не смог просмотреть мое слияние до того, как два файла были объединены.

...