Mercurial > hgsubversion
comparison hgsubversion/util.py @ 1502:fb91566d849c
util: return baseset instead of plain list from revset
Support for returning plain lists from revset predicates was recently removed.
(See: https://www.mercurial-scm.org/repo/hg/rev/35b8bb1ef02b)
author | Arun Kulshreshtha <kulshrax@fb.com> |
---|---|
date | Fri, 21 Apr 2017 13:43:59 -0700 |
parents | cbc48ed3b56c |
children | fc91ba4ffa52 |
comparison
equal
deleted
inserted
replaced
1501:6e3f48d8002f | 1502:fb91566d849c |
---|---|
20 | 20 |
21 try: | 21 try: |
22 from mercurial import revset | 22 from mercurial import revset |
23 except ImportError: | 23 except ImportError: |
24 pass | 24 pass |
25 | |
26 try: | |
27 from mercurial import smartset | |
28 smartset.baseset # force demandimport to load the module now | |
29 except ImportError: | |
30 smartset = None | |
25 | 31 |
26 import maps | 32 import maps |
27 | 33 |
28 ignoredfiles = set(['.hgtags', '.hgsvnexternals', '.hgsub', '.hgsubstate']) | 34 ignoredfiles = set(['.hgtags', '.hgsvnexternals', '.hgsub', '.hgsubstate']) |
29 | 35 |
343 meta = repo.svnmeta(skiperrorcheck=True) | 349 meta = repo.svnmeta(skiperrorcheck=True) |
344 if not meta.revmapexists: | 350 if not meta.revmapexists: |
345 raise hgutil.Abort("svn metadata is missing - " | 351 raise hgutil.Abort("svn metadata is missing - " |
346 "run 'hg svn rebuildmeta' to reconstruct it") | 352 "run 'hg svn rebuildmeta' to reconstruct it") |
347 svnrevs = set(rev(h) for h in meta.revmap.hashes().keys()) | 353 svnrevs = set(rev(h) for h in meta.revmap.hashes().keys()) |
348 return filter(svnrevs.__contains__, subset) | 354 filteredrevs = filter(svnrevs.__contains__, subset) |
355 if smartset is not None: | |
356 filteredrevs = smartset.baseset(filteredrevs) | |
357 return filteredrevs | |
349 | 358 |
350 def revset_svnrev(repo, subset, x): | 359 def revset_svnrev(repo, subset, x): |
351 '''``svnrev(number)`` | 360 '''``svnrev(number)`` |
352 Select changesets that originate in the given Subversion revision. | 361 Select changesets that originate in the given Subversion revision. |
353 ''' | 362 ''' |
367 revs = [] | 376 revs = [] |
368 for n in meta.revmap.revhashes(revnum): | 377 for n in meta.revmap.revhashes(revnum): |
369 r = repo[n].rev() | 378 r = repo[n].rev() |
370 if r in subset: | 379 if r in subset: |
371 revs.append(r) | 380 revs.append(r) |
381 if smartset is not None: | |
382 revs = smartset.baseset(revs) | |
372 return revs | 383 return revs |
373 | 384 |
374 revsets = { | 385 revsets = { |
375 'fromsvn': revset_fromsvn, | 386 'fromsvn': revset_fromsvn, |
376 'svnrev': revset_svnrev, | 387 'svnrev': revset_svnrev, |