# HG changeset patch # User Kyle Lippincott # Date 2019-12-13 23:46:25 # Node ID c6feee1e4d5b6c3e7ca26c6fd51eac7d55ec7723 # Parent 8caec25f5d8f6b5996df5511f8bb5bfb3a17aa14 rebase: make rebase not crash if p1 == p2 != nullid While this shouldn't happen normally, some historical bugs can have caused this kind of commit to exist. Instead of crashing and having it be unobvious how to recover, let's try to continue on. Without this, we get an error like "ValueError: min() arg is an empty sequence" Differential Revision: https://phab.mercurial-scm.org/D7664 diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -1791,7 +1791,7 @@ def defineparents(repo, rev, destmap, st # But our merge base candidates (D and E in above case) could still be # better than the default (ancestor(F, Z) == null). Therefore still # pick one (so choose p1 above). - if sum(1 for b in bases if b != nullrev) > 1: + if sum(1 for b in set(bases) if b != nullrev) > 1: unwanted = [None, None] # unwanted[i]: unwanted revs if choose bases[i] for i, base in enumerate(bases): if base == nullrev: