Details
Details
- Reviewers
quark - Group Reviewers
Restricted Project - Commits
- rFBHGX1565762f58d2: compat: add support for hg >= f3dc8239
Diff Detail
Diff Detail
- Repository
- rFBHGX Facebook Mercurial Extensions
- Lint
Lint Skipped - Unit
Unit Tests Skipped
quark |
Restricted Project |
Lint Skipped |
Unit Tests Skipped |
Path | Packages | |||
---|---|---|---|---|
M | remotefilelog/fileserverclient.py (10 lines) |
Status | Author | Revision | |
---|---|---|---|
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz | ||
Closed | martinvonz |
pathhash = hashlib.sha1(file).hexdigest() | pathhash = hashlib.sha1(file).hexdigest() | ||||
return os.path.join(reponame, pathhash[:2], pathhash[2:], id) | return os.path.join(reponame, pathhash[:2], pathhash[2:], id) | ||||
def getlocalkey(file, id): | def getlocalkey(file, id): | ||||
pathhash = hashlib.sha1(file).hexdigest() | pathhash = hashlib.sha1(file).hexdigest() | ||||
return os.path.join(pathhash, id) | return os.path.join(pathhash, id) | ||||
def peersetup(ui, peer): | def peersetup(ui, peer): | ||||
try: | |||||
from mercurial.wireprotov1peer import future | |||||
except (ImportError, AttributeError): | |||||
from mercurial.wireproto import future | |||||
class remotefilepeer(peer.__class__): | class remotefilepeer(peer.__class__): | ||||
@batchable | @batchable | ||||
def getfile(self, file, node): | def getfile(self, file, node): | ||||
if not self.capable('getfile'): | if not self.capable('getfile'): | ||||
raise error.Abort( | raise error.Abort( | ||||
'configured remotefile server does not support getfile') | 'configured remotefile server does not support getfile') | ||||
f = wireproto.future() | f = future() | ||||
yield {'file': file, 'node': node}, f | yield {'file': file, 'node': node}, f | ||||
code, data = f.value.split('\0', 1) | code, data = f.value.split('\0', 1) | ||||
if int(code): | if int(code): | ||||
raise error.LookupError(file, node, data) | raise error.LookupError(file, node, data) | ||||
yield data | yield data | ||||
@batchable | @batchable | ||||
def getflogheads(self, path): | def getflogheads(self, path): | ||||
if not self.capable('getflogheads'): | if not self.capable('getflogheads'): | ||||
raise error.Abort('configured remotefile server does not ' | raise error.Abort('configured remotefile server does not ' | ||||
'support getflogheads') | 'support getflogheads') | ||||
f = wireproto.future() | f = future() | ||||
yield {'path': path}, f | yield {'path': path}, f | ||||
heads = f.value.split('\n') if f.value else [] | heads = f.value.split('\n') if f.value else [] | ||||
yield heads | yield heads | ||||
def _updatecallstreamopts(self, command, opts): | def _updatecallstreamopts(self, command, opts): | ||||
if command != 'getbundle': | if command != 'getbundle': | ||||
return | return | ||||
if 'remotefilelog' not in shallowutil.peercapabilities(self): | if 'remotefilelog' not in shallowutil.peercapabilities(self): |