it-roy-ru.com

Как объединить ветку CVS в HEAD используя инструменты слияния Eclipse?

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

34
Alex Argo

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

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

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

Объединить:

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

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

Eclipse SDK Help - Слияние веток

46
Brian

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

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

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

7
Alex Argo

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

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

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

4
Marcin Wasiluk

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

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

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

1
Clarkey

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

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

0
Anshu Jain

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

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

0
birwin