David Demelier <demelier.da...@gmail.com> writes: > # HG changeset patch > # User David Demelier <demelier.da...@gmail.com> > # Date 1486130547 -3600 > # Fri Feb 03 15:02:27 2017 +0100 > # Node ID a9061ca9a25c8e16150fd2e1574ccac1310b7a03 > # Parent abf029200e198878a4576a87e095bd8d77d9cea9 > patchbomb: add -B option to select a bookmark > > Add the -B/--bookmark option to select a bookmark whose changesets > and its ancestors will be selected unless a new bookmark/head is > found. > > This is inspired by hg strip -B option.
Totally fine idea, I like it. > diff -r abf029200e19 -r a9061ca9a25c hgext/patchbomb.py > --- a/hgext/patchbomb.py Wed Feb 01 11:30:26 2017 -0600 > +++ b/hgext/patchbomb.py Fri Feb 03 15:02:27 2017 +0100 > @@ -81,6 +81,7 @@ > mail, > node as nodemod, > patch, > + repair, > scmutil, > util, > ) > @@ -411,6 +412,7 @@ > ('o', 'outgoing', None, > _('send changes not found in the target repository')), > ('b', 'bundle', None, _('send changes not in target as a binary > bundle')), Unrelated: -b option not meaning 'branch' makes me so very sad. > + ('B', 'bookmark', '', _('send changes only reachable by given > bookmark')), > ('', 'bundlename', 'bundle', > _('name of the bundle attachment file'), _('NAME')), > ('r', 'rev', [], _('a revision to send'), _('REV')), > @@ -449,6 +451,9 @@ > body and as a regular or an inline attachment by combining the > -a/--attach or -i/--inline with the --body option. > > + With -B/--bookmark changesets reachable by the given bookmark are > + selected. > + > With -o/--outgoing, emails will be generated for patches not found > in the destination repository (or only those which are ancestors > of the specified revisions if any are provided) > @@ -489,6 +494,8 @@ > hg email -o -r 3000 # send all ancestors of 3000 not in default > hg email -o -r 3000 DEST # send all ancestors of 3000 not in DEST > > + hg email -B feature # send all ancestors of feature bookmark > + > hg email -b # send bundle of all patches not in default > hg email -b DEST # send bundle of all patches not in DEST > hg email -b -r 3000 # bundle of all ancestors of 3000 not in > default > @@ -511,6 +518,7 @@ > mbox = opts.get('mbox') > outgoing = opts.get('outgoing') > rev = opts.get('rev') > + bookmark = opts.get('bookmark') > # internal option used by pbranches > patches = opts.get('patches') > > @@ -518,8 +526,8 @@ > # really sending > mail.validateconfig(ui) > > - if not (revs or rev or outgoing or bundle or patches): > - raise error.Abort(_('specify at least one changeset with -r or -o')) > + if not (revs or rev or outgoing or bundle or patches or bookmark): > + raise error.Abort(_('specify at least one changeset with -B, -r or > -o')) > > if outgoing and bundle: > raise error.Abort(_("--outgoing mode always on with --bundle;" > @@ -538,6 +546,10 @@ > if revs: > raise error.Abort(_('use only one form to specify the revision')) > revs = rev > + elif bookmark: > + if not bookmark in repo._bookmarks: > + raise error.Abort(_("bookmark '%s' not found") % bookmark) > + revs = repair.stripbmrevset(repo, bookmark) My only suggestion here is to add a test. I'm working on cleaning up the bookmark module so I'm thinking I can refactor this revset then. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel