comparison mercurial/localrepo.py @ 13723:e615765fdcc7

wireproto: add known([id]) function known([Node]) -> [1/0] Returns 1/0 for each node, indicating whether it's known by the server. Needed for new discovery protocols introduced in later patches.
author Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
date Tue, 22 Mar 2011 09:22:21 +0100
parents 9c4e04fe267e
children b51bf961b3cb
comparison
equal deleted inserted replaced
13722:f4a85acef50c 13723:e615765fdcc7
18 from lock import release 18 from lock import release
19 import weakref, errno, os, time, inspect 19 import weakref, errno, os, time, inspect
20 propertycache = util.propertycache 20 propertycache = util.propertycache
21 21
22 class localrepository(repo.repository): 22 class localrepository(repo.repository):
23 capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey')) 23 capabilities = set(('lookup', 'changegroupsubset', 'branchmap', 'pushkey',
24 'known'))
24 supportedformats = set(('revlogv1', 'parentdelta')) 25 supportedformats = set(('revlogv1', 'parentdelta'))
25 supported = supportedformats | set(('store', 'fncache', 'shared', 26 supported = supportedformats | set(('store', 'fncache', 'shared',
26 'dotencode')) 27 'dotencode'))
27 28
28 def __init__(self, baseui, path=None, create=0): 29 def __init__(self, baseui, path=None, create=0):
555 if key in repo.branchmap(): 556 if key in repo.branchmap():
556 return key 557 return key
557 558
558 repo = (remote and remote.local()) and remote or self 559 repo = (remote and remote.local()) and remote or self
559 return repo[key].branch() 560 return repo[key].branch()
561
562 def known(self, nodes):
563 nm = self.changelog.nodemap
564 return [(n in nm) for n in nodes]
560 565
561 def local(self): 566 def local(self):
562 return True 567 return True
563 568
564 def join(self, f): 569 def join(self, f):