I would like to find all changesets that are a merge from branchX to default.
So first parent of such changeset is on default and second parent of such changeset is on branchX.
Using hg log -r 'branch("default") & merge()
we have all the merged changeset on default, regardless whether the second parent is branchX or not.
How can I modify the above revset to filter out merged changesets where the 2nd parent is on branchX only?
This does it in my tests:
hg log -r "children(p2(branch(default)) & branch(branchX)) & merge()"
Explained:
p2(branch(default)) & branch(branchX)
gets the changesets on branchX
that are the second parent of a changeset on the default
branch.
children()
gets the children of those changesets
& merge()
limits those children to those which are merge changesets. Without this condition you also get the child that is continuing branchX
Edit this does it better I think:
hg log -r "children(p2(branch(default)) & branch(branchX)) & branch(default)"
The first version would include changes on branchX
that were merges from other branches just after a merge from branchX
to default
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With