Действительно ли возможно объединить диапазон изменений от одного ответвления до другого в Подвижном?
например.
|r1
|r2
|r3
|\___
| | r5
| | r6
| | r7
| | ...
| | r40
|r41
Если я хочу объединить изменения 6 и 7, но не 5, в основное ответвление - действительно ли это возможно?
Такое слияние может быть тривиальным, например, если r5 изменил файлы, которые не изменяются в 6 и 7 (и таким образом, его изменения, если не нужный, могут безопасно быть проигнорированы),
Что относительно нескольких выбранного пересмотра колеблется от ответвления для ветвления B? например, объединитесь 4-7, 20-25 и 30-34?
(это не реальный случай, просто иллюстрация. Я пытаюсь понять, имеет ли hg эту функцию слияния диапазона пересмотра, что я знаю, что svn имеет),
Обратите внимание на расширение Transplant для Mercurial, я думаю, он сделает именно то, что вы хотите.
Простой ответ: нет .
Это противоречит духу Mercurial.
Ваш график подразумевает, что 6
зависит от 5
, поэтому все, что тянет 6
, должно тянуть 5
, в противном случае это не имеет смысла.
Мне кажется, что вы ошиблись здесь с Mercurial. Если ваше дерево изменений линейное, это обычно признак того, что вы используете Mercurial, как CVS или SVN.
Ваше дерево изменений должно выглядеть примерно так:
4
/ \
/| |\
/ | | \
5 7 23 \
| | | 25
6 8 24 |
26
Затем вы можете потянуть либо ветвь, начинающуюся с 5
, либо ветвь, начинающуюся с 23
.
Ошибка - это человеческий фактор, поэтому существует «средство», называемое экспортом, которое позволяет вам создать простой файл различий из одного набора изменений.
В вашем конкретном случае вы должны:
r4
r6
и одну из r7
(экспорт ) r41
Если хотите, вы также можете пойти по пути расширения. Есть несколько полезных расширений для управления наборами изменений. Пример набора:
Здесь вы можете, например, клонировать репозиторий (важно, всегда тестируйте их на клонах, на всякий случай), а затем сверните интересующие вас диапазоны. Затем вы можете экспортировать / импортировать их.