Слияние двух веток без фактического слияния - PullRequest
3 голосов
/ 30 января 2011

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

Я хотел бы «объединить» две ветви (точнее, именованные ветви), чтобы сами ветви не исчезали.По сути, я хочу извлечь изменения из ревизии, но вручную разрешить изменения / конфликты cherrypick (используя мою программу слияния).

Кажется, что при импорте, экспорте, трансплантации и т. Д. Создаются патчи и наборы изменений, которые непосредственно применяются ктекущий рабочий каталог.Но я не хочу этого ... вместо этого я хочу вручную определить, какие изменения произойдут.

Благодарим Вас за помощь.

Ответы [ 3 ]

4 голосов
/ 30 января 2011

Я хотел бы «объединить» две ветви (точнее, названные ветви), чтобы сами ветви не исчезали.

Это поведение по умолчанию.Например, если вы посмотрите на ветку default исходного кода Mercurial , вы увидите, что он регулярно сливается с stable.Эти слияния не заставляют default или stable исчезать.Фиксация слияния только получает имя локальной ветви.

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

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

update : теперь также имеется ядро ​​команда .

2 голосов
/ 30 января 2011

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

git cherry-pick SHA1 --no-commit
git add --patch

чтобы действительно точно настроить то, что вам нужно импортировать / объединить в этой третьей ветви, как описано в SO-вопросе " Используя GIT, как я могу выборочно извлекать / объединять изменения из чужой" ветки "?"

0 голосов
/ 30 января 2011

Если вы используете git, взгляните на слияние стратегии .

...