On Sun, Mar 12, 2017 at 12:06 PM, Augie Fackler <r...@durin42.com> wrote:

> On Sat, Mar 11, 2017 at 06:03:13PM -0800, Ryan McElroy wrote:
> > # HG changeset patch
> > # User Ryan McElroy <rmcel...@fb.com>
> > # Date 1489283611 28800
> > #      Sat Mar 11 17:53:31 2017 -0800
> > # Node ID 7c7f442027b6a0cd51b1f06b01913f53f4f9e9cd
> > # Parent  a788a4660443dfc33c5c1c58eec78e20150404d9
> > rebase: add flag to require destination
>
> These both look mechanically fine to me, but I'm a little skeptical
> about the configuration sections in play (update and rebase
> respectively), so I'll leave them for other parties to examine and
> bikeshed.
>

The ship has likely already sailed, but IMO it would be nice if there a
unified [command] (or similar) section that controls behavior of commands,
specifically with regards to command arguments. But, a section per command
sharing the name of the command is acceptable. I just don't think options
for command argument behavior appearing in random sections is very user
friendly.


>
> >
> > diff --git a/hgext/rebase.py b/hgext/rebase.py
> > --- a/hgext/rebase.py
> > +++ b/hgext/rebase.py
> > @@ -650,6 +650,16 @@ def rebase(ui, repo, **opts):
> >
> >            hg rebase -r "branch(featureX)" -d 1.3 --keepbranches
> >
> > +    Configuration Options:
> > +
> > +    You can make rebase require a destination if you set the following
> config
> > +    option:
> > +
> > +      [rebase]
> > +      requiredest = False
> > +
> > +    Return Values:
> > +
> >      Returns 0 on success, 1 if nothing to rebase or there are
> >      unresolved conflicts.
> >
> > @@ -663,6 +673,12 @@ def rebase(ui, repo, **opts):
> >
> >          # Validate input and define rebasing points
> >          destf = opts.get('dest', None)
> > +
> > +        if ui.config('rebase', 'requiredest', False):
> > +            if not destf:
> > +                raise error.Abort(_('you must specify a destination'),
> > +                                  hint=_('use: hg rebase -d REV'))
> > +
> >          srcf = opts.get('source', None)
> >          basef = opts.get('base', None)
> >          revf = opts.get('rev', [])
> > diff --git a/tests/test-rebase-base.t b/tests/test-rebase-base.t
> > --- a/tests/test-rebase-base.t
> > +++ b/tests/test-rebase-base.t
> > @@ -391,3 +391,25 @@ Multiple roots. Two children share two p
> >     /
> >    o  0: A
> >
> > +Require a destination
> > +  $ cat >> $HGRCPATH <<EOF
> > +  > [rebase]
> > +  > requiredest = True
> > +  > EOF
> > +  $ hg init repo
> > +  $ cd repo
> > +  $ echo a >> a
> > +  $ hg commit -qAm aa
> > +  $ echo b >> b
> > +  $ hg commit -qAm bb
> > +  $ hg up ".^"
> > +  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
> > +  $ echo c >> c
> > +  $ hg commit -qAm cc
> > +  $ hg rebase
> > +  abort: you must specify a destination
> > +  (use: hg rebase -d REV)
> > +  [255]
> > +  $ hg rebase -d 1
> > +  rebasing 2:5db65b93a12b "cc" (tip)
> > +  saved backup bundle to $TESTTMP/repo/.hg/strip-
> backup/5db65b93a12b-4fb789ec-backup.hg (glob)
> > _______________________________________________
> > Mercurial-devel mailing list
> > Mercurial-devel@mercurial-scm.org
> > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel@mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to