# HG changeset patch # User Sushil khanchi # Date 1627408967 -19800 # Node ID 435dfa125d89b5b8938262eacf5a93caa1ed2758 # Parent 442771901e01227f264e9e919756bae52b822f60 picksplitsuccessor: refactor and rename this method for better quality This patch modify the prompt message and make it more generic by removing the `evolvecand` param, which would help us in using this method at other places as well. diff -r 442771901e01 -r 435dfa125d89 hgext3rd/evolve/evolvecmd.py --- a/hgext3rd/evolve/evolvecmd.py Fri Dec 03 10:46:49 2021 +0300 +++ b/hgext3rd/evolve/evolvecmd.py Tue Jul 27 23:32:47 2021 +0530 @@ -133,14 +133,14 @@ ui.write_err(msg) return (False, b".") if exc.splitflag: - splitsucc = utility.picksplitsuccessor(ui, repo, obs, orig) - if not splitsucc[0]: + splitsucc = utility.select_split_successor(ui, repo, obs) + if not splitsucc: msg = _(b"could not solve instability, " b"ambiguous destination: " b"parent split across two branches\n") ui.write_err(msg) return (False, b".") - newer = splitsucc[1] + newer = splitsucc target = repo[newer] if not ui.quiet or confirm: repo.ui.write(_(b'move:'), label=b'evolve.operation') diff -r 442771901e01 -r 435dfa125d89 hgext3rd/evolve/utility.py --- a/hgext3rd/evolve/utility.py Fri Dec 03 10:46:49 2021 +0300 +++ b/hgext3rd/evolve/utility.py Tue Jul 27 23:32:47 2021 +0530 @@ -128,32 +128,28 @@ return repo[newer[0][0]].rev() -def picksplitsuccessor(ui, repo, ctx, evolvecand): - """choose a successor of ctx from split targets +def select_split_successor(ui, repo, ctx): + """Return most suitable split successor of for evolution. - Choose highest one if all successors are in a topological branch. And if - they are split over multiple topological branches, we ask user to choose - an evolve destination. + If all successors are on one topological branch, we choose tipmost successor. + Otherwise, we ask user to choose an evolve destination. - Return (True, succ) unless split targets are split over multiple - topological branches and user didn't choose any evolve destination, - in which case return (False, '.') + Return ``None`` if no successor selected. """ targets = obsutil.successorssets(repo, ctx.node())[0] assert targets targetrevs = [repo[r].rev() for r in targets] heads = repo.revs(b'heads(%ld::%ld)', targetrevs, targetrevs) if len(heads) > 1: - cheader = (_(b"ancestor of '%s' split over multiple topological" - b" branches.\nchoose an evolve destination:") % - evolvecand) + cheader = (_(b"changeset %s split over multiple topological" + b" branches, choose an evolve destination:") % ctx) selectedrev = revselectionprompt(ui, repo, list(heads), cheader) if selectedrev is None: - return (False, '.') + return succ = repo[selectedrev] else: succ = repo[heads.first()] - return (True, repo[succ].rev()) + return repo[succ].rev() def _successorrevs(repo, ctx): try: diff -r 442771901e01 -r 435dfa125d89 tests/test-evolve-issue5832.t --- a/tests/test-evolve-issue5832.t Fri Dec 03 10:46:49 2021 +0300 +++ b/tests/test-evolve-issue5832.t Tue Jul 27 23:32:47 2021 +0530 @@ -117,8 +117,7 @@ move:[2] added b atop:[5] added a move:[4] merge commit - ancestor of '7235ef625ea3' split over multiple topological branches. - choose an evolve destination: + changeset 9402371b436e split over multiple topological branches, choose an evolve destination: 1: [62fb70414f99] added c 2: [5841d7cf9893] added d q: quit the prompt @@ -257,8 +256,7 @@ move:[2] added b atop:[6] added a move:[4] merge commit - ancestor of 'cdf2ea1b9312' split over multiple topological branches. - choose an evolve destination: + changeset 9402371b436e split over multiple topological branches, choose an evolve destination: 1: [62fb70414f99] added c 2: [5841d7cf9893] added d q: quit the prompt @@ -402,8 +400,7 @@ > EOF move:[2] added b atop:[6] added a - ancestor of 'b9b387427a53' split over multiple topological branches. - choose an evolve destination: + changeset 9402371b436e split over multiple topological branches, choose an evolve destination: 1: [62fb70414f99] added c 2: [5841d7cf9893] added d q: quit the prompt diff -r 442771901e01 -r 435dfa125d89 tests/test-evolve-orphan-split.t --- a/tests/test-evolve-orphan-split.t Fri Dec 03 10:46:49 2021 +0300 +++ b/tests/test-evolve-orphan-split.t Tue Jul 27 23:32:47 2021 +0530 @@ -193,8 +193,7 @@ $ hg evolve --dry-run < 1 > EOF - ancestor of 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: + changeset f89e4764f2ed split over multiple topological branches, choose an evolve destination: 1: [f2632392aefe] added a b c 2: [7f87764e5b64] added a b c q: quit the prompt @@ -206,8 +205,7 @@ $ hg evolve --dry-run < 2 > EOF - ancestor of 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: + changeset f89e4764f2ed split over multiple topological branches, choose an evolve destination: 1: [f2632392aefe] added a b c 2: [7f87764e5b64] added a b c q: quit the prompt @@ -222,8 +220,7 @@ $ hg evolve --all < foo > EOF - ancestor of 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: + changeset f89e4764f2ed split over multiple topological branches, choose an evolve destination: 1: [f2632392aefe] added a b c 2: [7f87764e5b64] added a b c q: quit the prompt @@ -234,8 +231,7 @@ $ hg evolve --all < 4 > EOF - ancestor of 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: + changeset f89e4764f2ed split over multiple topological branches, choose an evolve destination: 1: [f2632392aefe] added a b c 2: [7f87764e5b64] added a b c q: quit the prompt @@ -246,8 +242,7 @@ $ hg evolve --all < -1 > EOF - ancestor of 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: + changeset f89e4764f2ed split over multiple topological branches, choose an evolve destination: 1: [f2632392aefe] added a b c 2: [7f87764e5b64] added a b c q: quit the prompt @@ -258,8 +253,7 @@ $ hg evolve --all < q > EOF - ancestor of 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: + changeset f89e4764f2ed split over multiple topological branches, choose an evolve destination: 1: [f2632392aefe] added a b c 2: [7f87764e5b64] added a b c q: quit the prompt @@ -271,8 +265,7 @@ $ hg evolve --all < 1 > EOF - ancestor of 'd48a30875f01' split over multiple topological branches. - choose an evolve destination: + changeset f89e4764f2ed split over multiple topological branches, choose an evolve destination: 1: [f2632392aefe] added a b c 2: [7f87764e5b64] added a b c q: quit the prompt