On 09/16/2016 08:08 AM, Simon King wrote:
On Fri, Sep 16, 2016 at 2:51 PM, Uwe Brauer <o...@mat.ucm.es> wrote:
BTW even if I used named branches instead of bookmarks there is no
simple way to export a whole branch? As in in my example
hg export --branch uwe -o mypatch.patch
Does not exist?
hg export -r 'uwe % master' -o mypatch.patch
works with bookmarks, and I'm pretty sure it'd work with named branches.
This is where it's really worth learning the revset language again
(https://selenic.com/hg/help/revsets). In this case, you want to
export revisions that are ancestors of your current working directory,
and aren't ancestors of "master".
ie. "ancestors(.) - ancestors(master)"
You can use the "::" operator as shorthand for the ancestors() function:
::. - ::master
You can also use the only() function:
(You *might* be able to leave out the "::master" in that one, I'm not certain)
The % operator provides a much more direct translation: ". % master".
Or, in this case, "uwe % master". If the % operator seems funky to you,
you can also spell it "only(uwe,master)". It's equivalent to "::uwe -
If you've used a named branch, the branch() function would return all
the revisions on that branch.
Personally, I would not use a named branch for feature work like this.
The branch is baked into the commits, so it could cause problems
rebasing and things. Admittedly, I haven't used named branches at all,
but my impression is that they only make sense for changes that you
really do only want on that branch and never on another branch. In this
case, you do not want that restriction; you want to be able to move
these changes off of your feature branch (er, fork? head? bookmark?) and
onto master or whatever the main development line is.
Plus, it seems like 'uwe % master' pretty easily gives you exactly what
you want. I suppose if you fork another feature branch uwe2 off of uwe,
things might get more complex -- or rather, you'd just need to specify
what you mean. 'uwe2 % uwe' would give stuff only on uwe2 and not uwe,
or 'uwe2 % master' could be used to apply all changes needed to get
master to look like uwe2.
(As a side note, I only know about % because of questions on this list.
I wish I'd known of it sooner, as I've had the exact same need and found
it difficult to construct the appropriate revset.)
Mercurial mailing list