Mercurial > public > mercurial-scm > hg-stable
diff mercurial/destutil.py @ 28141:13bb8de97f87
destutil: add more precise error classes for destmerge
Having exception classes more precise than 'Abort' will allow us to properly
catch "nothing to rebase" situations when we will be using 'destmerge' in
rebase.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Tue, 09 Feb 2016 23:30:41 +0000 |
parents | 276644ae9e8d |
children | 3324345a498e |
line wrap: on
line diff
--- a/mercurial/destutil.py Mon Feb 08 22:58:15 2016 +0000 +++ b/mercurial/destutil.py Tue Feb 09 23:30:41 2016 +0000 @@ -209,10 +209,10 @@ node = bmheads[0] elif len(bmheads) > 2: msg, hint = msgdestmerge['toomanybookmarks'][action] - raise error.Abort(msg, hint=hint) + raise error.ManyMergeDestAbort(msg, hint=hint) elif len(bmheads) <= 1: msg, hint = msgdestmerge['nootherbookmarks'][action] - raise error.Abort(msg, hint=hint) + raise error.NoMergeDestAbort(msg, hint=hint) assert node is not None return node @@ -225,13 +225,13 @@ branch = repo.dirstate.branch() elif not sourceset: msg, hint = msgdestmerge['emptysourceset'][action] - raise error.Abort(msg, hint=hint) + raise error.NoMergeDestAbort(msg, hint=hint) else: branch = None for ctx in repo.set('roots(%ld::%ld)', sourceset, sourceset): if branch is not None and ctx.branch() != branch: msg, hint = msgdestmerge['multiplebranchessourceset'][action] - raise error.Abort(msg, hint=hint) + raise error.ManyMergeDestAbort(msg, hint=hint) branch = ctx.branch() bheads = repo.branchheads(branch) @@ -256,7 +256,7 @@ # instead. msg, hint = msgdestmerge['toomanyheads'][action] msg %= (branch, len(bheads) + 1) - raise error.Abort(msg, hint=hint) + raise error.ManyMergeDestAbort(msg, hint=hint) elif not nbhs: # Case B: There is no other anonymous heads # @@ -269,7 +269,7 @@ msg %= branch else: msg, hint = msgdestmerge['nootherheads'][action] - raise error.Abort(msg, hint=hint) + raise error.NoMergeDestAbort(msg, hint=hint) else: node = nbhs[0] assert node is not None