Простой ответ: нет .
Это противоречит духу Mercurial.
Ваш график подразумевает, что 6
зависит от 5
, поэтому все, что тянет 6
, должно тянуть 5
, в противном случае это не имеет смысла.
Мне кажется, вы здесь неправильно поняли Mercurial. Если дерево изменений является линейным, это, как правило, признак того, что вы используете Mercurial, как если бы вы использовали CVS или SVN.
Ваше дерево изменений должно выглядеть так:
4
/ \
/| |\
/ | | \
5 7 23 \
| | | 25
6 8 24 |
26
И тогда вы можете тянуть либо ветку, начинающуюся с 5
, либо ветку, начинающуюся с 23
.
Теперь ошибка человеческая, поэтому существует «средство», называемое экспортом, которое позволяет вам создать простой файл сравнения из одного набора изменений.
В вашем конкретном случае вы бы таким образом:
- клонировать хранилище до
r4
- создать diff из
r6
и один из r7
(экспорт)
- применить оба (по порядку) к новому клону (импорт)
- запускать свои юнит-тесты, пока они не пройдут
- 1038 * совершить *
- втянуть
r41
- 1043 * Слияние *
- запускать свои юнит-тесты, пока они не пройдут
- 1047 * совершить *
Если вы хотите, вы также можете пойти по дороге расширения. Есть несколько полезных расширений для управления наборами изменений. Набор образцов:
Здесь вы можете, например, клонировать репозиторий (важно, всегда проверяйте их на клонах, на всякий случай), а затем свернуть интересующие вас диапазоны. Затем вы можете экспортировать / импортировать их.