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,