Mercurial > evolve
comparison hgext3rd/topic/revset.py @ 4369:75276f858444
revset: subscriptrelations functions now have two bounds
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sat, 26 Jan 2019 23:58:18 +0800 |
parents | 0f015fe4f71f |
children | 2893b127923b |
comparison
equal
deleted
inserted
replaced
4368:acfd2b1a6176 | 4369:75276f858444 |
---|---|
106 else: | 106 else: |
107 branch = repo[None].branch() | 107 branch = repo[None].branch() |
108 return revset.baseset(stack.stack(repo, branch=branch, topic=topic)[1:]) & subset | 108 return revset.baseset(stack.stack(repo, branch=branch, topic=topic)[1:]) & subset |
109 | 109 |
110 if util.safehasattr(revset, 'subscriptrelations'): | 110 if util.safehasattr(revset, 'subscriptrelations'): |
111 def stackrel(repo, subset, x, rel, n, order): | 111 def stackrel(repo, subset, x, rel, n, *args): |
112 """This is a revset-flavored implementation of stack aliases. | 112 """This is a revset-flavored implementation of stack aliases. |
113 | 113 |
114 The syntax is: rev#stack[n] or rev#s[n]. Plenty of logic is borrowed | 114 The syntax is: rev#stack[n] or rev#s[n]. Plenty of logic is borrowed |
115 from topic._namemap, but unlike that function, which prefers to abort | 115 from topic._namemap, but unlike that function, which prefers to abort |
116 (e.g. when stack index is too high), this returns empty set to be more | 116 (e.g. when stack index is too high), this returns empty set to be more |
117 revset-friendly. | 117 revset-friendly. |
118 """ | 118 """ |
119 # hg 5.0 provides two bounds, for now we support only one | |
120 if len(args) == 2 and args[0] != n: | |
121 raise NotImplementedError | |
119 s = revset.getset(repo, revset.fullreposet(repo), x) | 122 s = revset.getset(repo, revset.fullreposet(repo), x) |
120 if not s: | 123 if not s: |
121 return revset.baseset() | 124 return revset.baseset() |
122 revs = [] | 125 revs = [] |
123 for r in s: | 126 for r in s: |
141 return subset & revset.baseset(revs) | 144 return subset & revset.baseset(revs) |
142 | 145 |
143 revset.subscriptrelations['stack'] = stackrel | 146 revset.subscriptrelations['stack'] = stackrel |
144 revset.subscriptrelations['s'] = stackrel | 147 revset.subscriptrelations['s'] = stackrel |
145 | 148 |
146 def topicrel(repo, subset, x, rel, n, order): | 149 def topicrel(repo, subset, x, rel, n, *args): |
150 # hg 5.0 provides two bounds, for now we support only one | |
151 if len(args) == 2 and args[0] != n: | |
152 raise NotImplementedError | |
147 ancestors = revset._ancestors | 153 ancestors = revset._ancestors |
148 descendants = revset._descendants | 154 descendants = revset._descendants |
149 subset = topicset(repo, subset, x) | 155 subset = topicset(repo, subset, x) |
150 if n <= 0: | 156 if n <= 0: |
151 n = -n | 157 n = -n |