?

Log in

No account? Create an account

hg in --branch - Узором созвездий по мантии ночи

30.07.2015, Четверг

18:52:00 - hg in --branch

Previous Entry Поделиться Next Entry

Странным образом ведёт себя mercurial, когда в репозитории есть бранчи, имена которых оказываются префиксами других бранчей (наприммер: 'dev_2.4', 'dev_2.4_tests', 'dev_2.4_main', 'dev_2.4_main_bugs' -- первое имя является префиксом остальных трёх, третье является префиксом четвёртого).

Параметр --branch команды hg incoming выполняет не сравнение точно сравнение имени бранча, а выбирает все бранчи, имена которых начинаются с указанной строки. Т.е.
hg in -b dev_2.4
проверит (и вытащит, если с --bundle) мне все вышеперечисленные бранчи, а не только сам dev_2.4
Аналогично и команда
hg pull -r dev_2.4
вытащит все 4 перечисленных бранча.

Какого-либо ключа для ограничения выборки только точным соответствием имени бранча - не нашёл.
Баг? Мисфича? Или я чего не понял?

Да, я уже сообразил, что при большом желании можно написать скрипт, который проверит все changeset'ы, которые вернёт hg in, составит список нужных и укажет их явным образом. Но это всё же workaround, а не правильное использование правильно спроектированной фичи.

This entry was originally posted at http://arilou.dreamwidth.org/969852.html. Please comment there using OpenID.

Comments:

[User Picture]
From:grey_demonstr
Date:02.08.2015 21:02:34
(Link)
Ты как-то неправильно его готовишь. В incoming попадают ревизии, которые были смержены в целевую ветку. Поэтому, когда ты пишешь hg in -b dev_2.4, ты видишь коммиты из других бранчей, если они были смержены.

Для примера можешь создать тестовый репозиторий и убедиться (я только что это проделал за две минуты).
(Ответить) (Thread)