hg help revsets
как источник, начиная с последнего вопроса
Список привитых ревизий
"destination([set])"
Changesets that were created by a graft, transplant or rebase operation, with the given
revisions specified as the source.
Omitting the optional set is the same as passing all().
Для "... наборов изменений, перенесенных из mybranch в default" revset будет
destination(branch("mybranch")) & branch("default")
Еще лучше: вы можете сохранить его как revsetalias (TBT!)
[revsetalias]
grafted(from, to) = destination(branch(from)) & branch(to)
и используйте его для любой пары ветвей (расширение до произвольного количества источников будет вашей будущей задачей).
Последняя слитая ревизия
Шаг за шагом * * тысячу двадцать-одна
- "... последний набор изменений в ветви по умолчанию, которая объединила определенную ветвь" - это а) набор слияний б) последний, если объединены более одного раза в) один из его родителей принадлежит рассматриваемой ветви
- вам нужно проверить revset, и если я перепутал родителей, поменяйте p1 & p2 в revset (сейчас не могу отладить)
- Необходимо подготовить Revset к наиболее распространенной задаче «Получить последнюю точку слияния от ветви к ветви К»
merge() & branch("to")
- все точки слияния в TO
p2(merge() & branch("to")) & branch("from")
- слияния родителей только из
child(p2(merge() & branch("to")) & branch("from")) & branch("to")
- дети вышеуказанных родителей только в ТО (потому что они могут иметь детей и в других филиалах)
last(child(p2(merge() & branch("to")) & branch("from")) & branch("to"))
- последняя точка слияния, если слияния произошли несколько раз.
Набор revsetaliases (для лучшей читаемости) в результате
[revsetalias]
ms(to) = merge() & branch(to)
ms2b (до, от) = (дочерний (p2 (мс (до))) и ответвление (с)) и ответвление (до)
fp_ms(to,from) = p2(ms(to)) & branch(from)
и ваш revset для:
- последняя точка слияния
last(ms2b("default","mybranch"))
- последний иностранный родитель
last(fp_ms("default","mybranch"))
Дополнение и демонстрация
Я исправил свой ms2b (), как показано на скриншоте репозитория THG ниже. Сливается из стабильного в стандартное состояние "как есть"
children(p2(merge() & branch(default)) & branch(stable)) & branch(default)
С параметрами и предварительно подготовленными revsetaliases
ms2b(to,from) = children(p2(ms(to)) & branch(from)) & branch(to)