[Python-Dev] Long term development external named branches and periodic merges from python

"Martin v. Löwis" martin at v.loewis.de
Wed Nov 30 09:01:55 CET 2011


> Could be implemented as a command line command using "revsets"?.
> Propose a new revset to mercurial devels?

It *is* implemented as a command line command using "revsets".
The revset is

max(ancestors(branch("%s")))-outgoing("%s"))

where the first parameter is the branch that contains your changes,
and the second one is the "path" of the repository you want to diff
against.

In English: find the most recent revision in the ancestry of your
branch that is not an outgoing change wrt. the base repository.

ancestors(branch(yours)) gives all revisions preceding your branches'
tip, which will be your own changes, plus all changes from the "default"
branch that have been merged into your branch (including the changes
from where you originally forked the  branch).

Subtracting outgoing removes all changes that are not yet in
cpython, leaving only the changes in your ancestry that come
from cpython. max() then finds the most recent such change,
which will be the "default" parent of your last merge, or
the branch point if you haven't merged after branching.

HTH,
Martin


More information about the Python-Dev mailing list