В настоящее время я работаю в ветке, созданной с помощью Team → Branch. Как использовать команду → Объединить, чтобы объединить мои изменения с веткой назад?
Как объединить ветвь CVS в HEAD с помощью инструментов объединения Eclipse?
Ответ 1
У меня тоже были проблемы с этим. Вот шаги, которые я предпринимаю для слияния (в основном, из справочной системы Eclipse):
- При создании моей ветки развития (Team → Branch) я гарантирую, что у меня есть корневой тег, созданный для ветки, это тег, который CVS будет использовать для определения того, какие изменения произошли из-за ветки и что могло быть сделано другими усилиями.
- Я завершаю свою разработку в ветке и фиксирую (Team → Commit), все изменения возвращаются в репозиторий
- Теперь, когда все мои изменения для ветки находятся в репозитории, я загружаю ветку назначения, в которую я хочу объединиться, обычно HEAD (Team → Switch to Another Branch или Version)
Теперь вы готовы начать фактический процесс слияния. Здесь вы будете выбирать, какие изменения должны произойти и которые следует отбросить. Подумайте об этом процессе как о полуавтоматическом цикле разработки, об эффективности проверки, внесении изменений, фиксации цикла. Только вместо того, чтобы вручную вносить изменения, вы можете сравнить инструменты, которые помогут вам. В конце концов вы уже внесли все изменения кода в свою ветку!
Слить:
- Команда → Объединить
- Филиал или версия, которые должны быть объединены (конечный тег): это имя тега ветвления разработки
- Общая базовая версия: это имя вашего корневого тега для ветки (помните, шаг 1 из предыдущего раздела?). Это должно быть автоматически заполнено инструментом, но если нет, добавьте его самостоятельно.
- Мне нравится Предварительный просмотр слияния в режиме синхронизации, поэтому я могу гарантировать, что ничего не получается, что не должно быть. В зависимости от вашей храбрости, это вариант, который я бы предложил. Нажмите кнопку Готово
- Появится сообщение "Синхронизировать перспективы", и любые различия, обнаруженные между веткой адресата и веткой вашего источника, будут показаны в расширяемом списке слева.
- Для любого файла вы можете открыть его в инструменте сравнения, чтобы увидеть, что это было до этого, и объединить изменения по отдельности (не забудьте сохранить файл по завершении!), или вы можете щелкнуть правой кнопкой мыши по файлу и выбрать слияние из расширяемого списка. Если вы вручную слились с инструментом сравнения, вы можете выбрать "Отметить как объединенное" в расширяемом списке, чтобы удалить файл из списка todo.
- Как только вы решите, что делать с файлом, он будет удален из списка. Цель состоит в том, чтобы воздействовать на каждый файл.
- Теперь, когда все ваши изменения были объединены, переключитесь обратно в перспективу Java и выберите Team → Synchronize with Repository, появится синхронизация перспективы.
- На этот раз выберите Commit, чтобы переместить все ваши изменения в репозиторий.
- Fin!
Надеюсь, что это помогло. Ниже приводится справочный документ, который помог мне победить!
Ответ 2
Убедитесь, что пункт назначения загружен в ваше рабочее пространство. Это самая важная часть и часть, которую я пропустил, пытаясь сделать это несколько раз.
Например, если вы хотите объединить свои изменения в HEAD, убедитесь, что проект используется совместно с HEAD в вашей рабочей области (а не в ветки, над которой вы работали). Для этого выберите проект и выберите Team > Replace With > Another Branch or Version
в контекстном меню. Затем выберите ветку для замены.
С этого момента выберите Team > Merge
, а затем выберите ветку, которую хотите объединить в HEAD.
Ответ 3
Я согласен, что это работает по-другому, если изменения в YOUR_BRANCH должны быть обновлены до HEAD,
1) зафиксировать изменения в YOUR_BRANCH 2) обменять локальную ветвь на HEAD 3) слияние изменений HEAD, сделанных в YOUR_BRANCH
поэтому вам нужно быть в HEAD и "принимать" изменения от YOUR_BRANCH (вместо отправки изменений от YOUR_BRANCH к HEAD).
Ответ 4
Я просто должен был это сделать. Хотя ответы выше были похожи, я обнаружил, что они не являются специфическими для того, что мне нужно делать.
- Как уже говорилось, убедитесь, что ваша ветвь детекции (обычно голова) уже проверена.
- Затем выделите файлы, которые, как вы знаете, изменили в своей ветке (или весь проект, что угодно) и выберите
Team -> Merge
. В появившемся диалоговом окне выберите "Branch or version to be merged (end tag)
", источник, который вы хотите принять файлов из. - В моем случае это авто
заселил "
Common base version (start tag)
", но если это не так, это будет тег, который был создан когда была создана ветка.
Когда вы просматриваете изменения, они появятся в обычном представлении синхронизации CVS. Когда вы объединяете файлы, они будут перенесены в вашу локальную рабочую область (которая раньше была веткой назначения) в качестве изменений. На этом этапе вам нужно будет проверить их на CVS.
Ответ 5
Я тоже боролся с этим, и вышеупомянутый ответ не помог, пока я не проверил переключатель "Выполнить слияние в локальную рабочую область".
К сожалению, мне не удалось просмотреть мое слияние перед объединением двух файлов.
Ответ 6
Честно говоря, нет простого и чистого пути, если вы не ожидали и не планировали это слияние с момента разветвления.
Тем не менее, я нашел хак, который отлично работает, который Я описал в сообщении в блоге.