comparison hgext/transplant.py @ 45942:89a2afe31e82

formating: upgrade to black 20.8b1 This required a couple of small tweaks to un-confuse black, but now it works. Big formatting changes come from: * Dramatically improved collection-splitting logic upstream * Black having a strong (correct IMO) opinion that """ is better than ''' Differential Revision: https://phab.mercurial-scm.org/D9430
author Augie Fackler <raf@durin42.com>
date Fri, 27 Nov 2020 17:03:29 -0500
parents 527ce85c2e60
children 59fa3890d40a
comparison
equal deleted inserted replaced
45941:346af7687c6f 45942:89a2afe31e82
60 60
61 configtable = {} 61 configtable = {}
62 configitem = registrar.configitem(configtable) 62 configitem = registrar.configitem(configtable)
63 63
64 configitem( 64 configitem(
65 b'transplant', b'filter', default=None, 65 b'transplant',
66 b'filter',
67 default=None,
66 ) 68 )
67 configitem( 69 configitem(
68 b'transplant', b'log', default=None, 70 b'transplant',
71 b'log',
72 default=None,
69 ) 73 )
70 74
71 75
72 class transplantentry(object): 76 class transplantentry(object):
73 def __init__(self, lnode, rnode): 77 def __init__(self, lnode, rnode):
138 ) 142 )
139 143
140 self.getcommiteditor = getcommiteditor 144 self.getcommiteditor = getcommiteditor
141 145
142 def applied(self, repo, node, parent): 146 def applied(self, repo, node, parent):
143 '''returns True if a node is already an ancestor of parent 147 """returns True if a node is already an ancestor of parent
144 or is parent or has already been transplanted''' 148 or is parent or has already been transplanted"""
145 if hasnode(repo, parent): 149 if hasnode(repo, parent):
146 parentrev = repo.changelog.rev(parent) 150 parentrev = repo.changelog.rev(parent)
147 if hasnode(repo, node): 151 if hasnode(repo, node):
148 rev = repo.changelog.rev(node) 152 rev = repo.changelog.rev(node)
149 reachable = repo.changelog.ancestors( 153 reachable = repo.changelog.ancestors(
680 b'[-m REV] [REV]...' 684 b'[-m REV] [REV]...'
681 ), 685 ),
682 helpcategory=command.CATEGORY_CHANGE_MANAGEMENT, 686 helpcategory=command.CATEGORY_CHANGE_MANAGEMENT,
683 ) 687 )
684 def transplant(ui, repo, *revs, **opts): 688 def transplant(ui, repo, *revs, **opts):
685 '''transplant changesets from another branch 689 """transplant changesets from another branch
686 690
687 Selected changesets will be applied on top of the current working 691 Selected changesets will be applied on top of the current working
688 directory with the log of the original changeset. The changesets 692 directory with the log of the original changeset. The changesets
689 are copied and will thus appear twice in the history with different 693 are copied and will thus appear twice in the history with different
690 identities. 694 identities.
729 start an interactive changeset browser. 733 start an interactive changeset browser.
730 734
731 If a changeset application fails, you can fix the merge by hand 735 If a changeset application fails, you can fix the merge by hand
732 and then resume where you left off by calling :hg:`transplant 736 and then resume where you left off by calling :hg:`transplant
733 --continue/-c`. 737 --continue/-c`.
734 ''' 738 """
735 with repo.wlock(): 739 with repo.wlock():
736 return _dotransplant(ui, repo, *revs, **opts) 740 return _dotransplant(ui, repo, *revs, **opts)
737 741
738 742
739 def _dotransplant(ui, repo, *revs, **opts): 743 def _dotransplant(ui, repo, *revs, **opts):
741 for node in csets: 745 for node in csets:
742 if match(node): 746 if match(node):
743 yield node 747 yield node
744 748
745 def transplantwalk(repo, dest, heads, match=util.always): 749 def transplantwalk(repo, dest, heads, match=util.always):
746 '''Yield all nodes that are ancestors of a head but not ancestors 750 """Yield all nodes that are ancestors of a head but not ancestors
747 of dest. 751 of dest.
748 If no heads are specified, the heads of repo will be used.''' 752 If no heads are specified, the heads of repo will be used."""
749 if not heads: 753 if not heads:
750 heads = repo.heads() 754 heads = repo.heads()
751 ancestors = [] 755 ancestors = []
752 ctx = repo[dest] 756 ctx = repo[dest]
753 for head in heads: 757 for head in heads:
884 revsetpredicate = registrar.revsetpredicate() 888 revsetpredicate = registrar.revsetpredicate()
885 889
886 890
887 @revsetpredicate(b'transplanted([set])') 891 @revsetpredicate(b'transplanted([set])')
888 def revsettransplanted(repo, subset, x): 892 def revsettransplanted(repo, subset, x):
889 """Transplanted changesets in set, or all transplanted changesets. 893 """Transplanted changesets in set, or all transplanted changesets."""
890 """
891 if x: 894 if x:
892 s = revset.getset(repo, subset, x) 895 s = revset.getset(repo, subset, x)
893 else: 896 else:
894 s = subset 897 s = subset
895 return smartset.baseset( 898 return smartset.baseset(