equal
deleted
inserted
replaced
201 b = _orsetlist(repo, subset, xs[p:], order) |
201 b = _orsetlist(repo, subset, xs[p:], order) |
202 return a + b |
202 return a + b |
203 |
203 |
204 def orset(repo, subset, x, order): |
204 def orset(repo, subset, x, order): |
205 xs = getlist(x) |
205 xs = getlist(x) |
|
206 if not xs: |
|
207 return baseset() |
206 if order == followorder: |
208 if order == followorder: |
207 # slow path to take the subset order |
209 # slow path to take the subset order |
208 return subset & _orsetlist(repo, fullreposet(repo), xs, anyorder) |
210 return subset & _orsetlist(repo, fullreposet(repo), xs, anyorder) |
209 else: |
211 else: |
210 return _orsetlist(repo, subset, xs, order) |
212 return _orsetlist(repo, subset, xs, order) |
307 |
309 |
308 Accepts 0 or more changesets. |
310 Accepts 0 or more changesets. |
309 Will return empty list when passed no args. |
311 Will return empty list when passed no args. |
310 Greatest common ancestor of a single changeset is that changeset. |
312 Greatest common ancestor of a single changeset is that changeset. |
311 """ |
313 """ |
312 l = getlist(x) |
|
313 rl = fullreposet(repo) |
|
314 anc = None |
314 anc = None |
315 |
315 for r in orset(repo, fullreposet(repo), x, order=anyorder): |
316 # (getset(repo, rl, i) for i in l) generates a list of lists |
316 if anc is None: |
317 for revs in (getset(repo, rl, i) for i in l): |
317 anc = repo[r] |
318 for r in revs: |
318 else: |
319 if anc is None: |
319 anc = anc.ancestor(repo[r]) |
320 anc = repo[r] |
|
321 else: |
|
322 anc = anc.ancestor(repo[r]) |
|
323 |
320 |
324 if anc is not None and anc.rev() in subset: |
321 if anc is not None and anc.rev() in subset: |
325 return baseset([anc.rev()]) |
322 return baseset([anc.rev()]) |
326 return baseset() |
323 return baseset() |
327 |
324 |