# HG changeset patch # User Pierre-Yves David # Date 1345466448 -7200 # Node ID b98490b689a5906ca3a1ced32d76d20df591e493 # Parent 4a039a8c1cf369eb6356ecae99f9a6463a0e1c12 stabilize: handle killed changeset in stabilize. diff -r 4a039a8c1cf3 -r b98490b689a5 hgext/evolve.py --- a/hgext/evolve.py Mon Aug 20 14:13:29 2012 +0200 +++ b/hgext/evolve.py Mon Aug 20 14:40:48 2012 +0200 @@ -272,13 +272,17 @@ obs = orig.parents()[1] assert obs.obsolete() newer = obsolete.newerversion(repo, obs.node()) + # search of a parent which is not killed + while newer == [()]: + ui.debug("stabilize target %s is plain dead," + " trying to stabilize on it's parent") + obs = obs.parents()[0] + newer = obsolete.newerversion(repo, obs.node()) if len(newer) > 1: ui.write_err(_("conflict rewriting. can't choose destination\n")) return 2 targets = newer[0] - if not targets: - ui.write_err(_("does not handle kill parent yet\n")) - return 2 + assert targets if len(targets) > 1: ui.write_err(_("does not handle splitted parent yet\n")) return 2 diff -r 4a039a8c1cf3 -r b98490b689a5 tests/test-tutorial.t --- a/tests/test-tutorial.t Mon Aug 20 14:13:29 2012 +0200 +++ b/tests/test-tutorial.t Mon Aug 20 14:40:48 2012 +0200 @@ -741,16 +741,13 @@ $ hg log -r 'unstable()' ae45c0c3092a (draft): SPAM SPAM SPAM -# XXX make prune stabilization works -# $ hg stabilize --any -# merging shopping - - $ hg graft -O ae45c0c3092a - grafting revision 17 + $ hg stabilize --any + move:[17] SPAM SPAM SPAM + atop:[14] bathroom stuff merging shopping $ hg log -G - @ 20de1fb1cec5 (draft): SPAM SPAM SPAM + @ d6717f710962 (draft): SPAM SPAM SPAM | o ffa278c50818 (draft): bathroom stuff |