[PATCH] rebase: factor out nothing to rebase return code
Augie Fackler
raf at durin42.com
Wed Oct 14 09:22:10 CDT 2015
On Tue, Oct 13, 2015 at 03:30:48PM -0700, Ryan McElroy wrote:
> # HG changeset patch
> # User Ryan McElroy <rmcelroy at fb.com>
> # Date 1444731605 25200
> # Tue Oct 13 03:20:05 2015 -0700
> # Node ID 73fac7cb3ee4c56df7256aba325fe004af2a15a5
> # Parent 79d86ab65c9def3fdd65ec972bc5fa89688a19ff
> rebase: factor out nothing to rebase return code
>
> A rebase call that results in nothing to rebase might be considered successful
> in some contexts. This factors out the return code from places where hg
> determines that there is nothing to rebase, so an extenion might change this
> return code to be something that would allow scripts to run without seeing this
> as an error.
My gut is that we should categorize these cases and start returning
different values anyway (eg 1 == "you asked me to rebase the null
set", 2 == "you asked me to rebase these revisions onto their current
parent", etc). See also a comment below.
>
> diff --git a/hgext/rebase.py b/hgext/rebase.py
> --- a/hgext/rebase.py
> +++ b/hgext/rebase.py
> @@ -36,6 +36,9 @@ command = cmdutil.command(cmdtable)
> # leave the attribute unspecified.
> testedwith = 'internal'
>
> +def _nothingtorebase():
> + return 1
> +
> def _savegraft(ctx, extra):
> s = ctx.extra().get('source', None)
> if s is not None:
> @@ -282,13 +285,13 @@ def rebase(ui, repo, **opts):
> if not rebaseset:
> ui.status(_('empty "rev" revision set - '
> 'nothing to rebase\n'))
> - return 1
> + return _nothingtorebase()
> elif srcf:
> src = scmutil.revrange(repo, [srcf])
> if not src:
> ui.status(_('empty "source" revision set - '
> 'nothing to rebase\n'))
> - return 1
> + return _nothingtorebase()
> rebaseset = repo.revs('(%ld)::', src)
> assert rebaseset
> else:
> @@ -296,7 +299,7 @@ def rebase(ui, repo, **opts):
> if not base:
> ui.status(_('empty "base" revision set - '
> "can't compute rebase set\n"))
> - return 1
> + return _nothingtorebase()
This one and the one above it seem slightly different - the user
managed to specify the null set, which seems more like an error than
the other cases?
> commonanc = repo.revs('ancestor(%ld, %d)', base, dest).first()
> if commonanc is not None:
> rebaseset = repo.revs('(%d::(%ld) - %d)::',
> @@ -329,7 +332,7 @@ def rebase(ui, repo, **opts):
> else: # can it happen?
> ui.status(_('nothing to rebase from %s to %s\n') %
> ('+'.join(str(repo[r]) for r in base), dest))
> - return 1
> + return _nothingtorebase()
>
> allowunstable = obsolete.isenabled(repo, obsolete.allowunstableopt)
> if (not (keepf or allowunstable)
> @@ -357,7 +360,7 @@ def rebase(ui, repo, **opts):
> if not result:
> # Empty state built, nothing to rebase
> ui.status(_('nothing to rebase\n'))
> - return 1
> + return _nothingtorebase()
>
> root = min(rebaseset)
> if not keepf and not repo[root].mutable():
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list