comparison hgext/remotefilelog/remotefilelogserver.py @ 50789:cbd1da102417

wrapfunction: use sysstr instead of bytes as argument in "remotefilelog" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 03 Feb 2023 04:25:07 +0100
parents 0925eaf09c8b
children a834ec41f17c
comparison
equal deleted inserted replaced
50788:05430a06a2eb 50789:cbd1da102417
65 return orig( 65 return orig(
66 self, changedfiles, linknodes, commonrevs, source, *args, **kwargs 66 self, changedfiles, linknodes, commonrevs, source, *args, **kwargs
67 ) 67 )
68 68
69 extensions.wrapfunction( 69 extensions.wrapfunction(
70 changegroup.cgpacker, b'generatefiles', generatefiles 70 changegroup.cgpacker, 'generatefiles', generatefiles
71 ) 71 )
72 72
73 73
74 onetime = False 74 onetime = False
75 75
205 for x in orig( 205 for x in orig(
206 repo, matcher, phase=phase, obsolescence=obsolescence 206 repo, matcher, phase=phase, obsolescence=obsolescence
207 ): 207 ):
208 yield x 208 yield x
209 209
210 extensions.wrapfunction(streamclone, b'_walkstreamfiles', _walkstreamfiles) 210 extensions.wrapfunction(streamclone, '_walkstreamfiles', _walkstreamfiles)
211 211
212 # expose remotefilelog capabilities 212 # expose remotefilelog capabilities
213 def _capabilities(orig, repo, proto): 213 def _capabilities(orig, repo, proto):
214 caps = orig(repo, proto) 214 caps = orig(repo, proto)
215 if shallowutil.isenabled(repo) or ui.configbool( 215 if shallowutil.isenabled(repo) or ui.configbool(
220 caps.append(constants.NETWORK_CAP_LEGACY_SSH_GETFILES) 220 caps.append(constants.NETWORK_CAP_LEGACY_SSH_GETFILES)
221 caps.append(b'x_rfl_getflogheads') 221 caps.append(b'x_rfl_getflogheads')
222 caps.append(b'x_rfl_getfile') 222 caps.append(b'x_rfl_getfile')
223 return caps 223 return caps
224 224
225 extensions.wrapfunction(wireprotov1server, b'_capabilities', _capabilities) 225 extensions.wrapfunction(wireprotov1server, '_capabilities', _capabilities)
226 226
227 def _adjustlinkrev(orig, self, *args, **kwargs): 227 def _adjustlinkrev(orig, self, *args, **kwargs):
228 # When generating file blobs, taking the real path is too slow on large 228 # When generating file blobs, taking the real path is too slow on large
229 # repos, so force it to just return the linkrev directly. 229 # repos, so force it to just return the linkrev directly.
230 repo = self._repo 230 repo = self._repo
231 if util.safehasattr(repo, b'forcelinkrev') and repo.forcelinkrev: 231 if util.safehasattr(repo, b'forcelinkrev') and repo.forcelinkrev:
232 return self._filelog.linkrev(self._filelog.rev(self._filenode)) 232 return self._filelog.linkrev(self._filelog.rev(self._filenode))
233 return orig(self, *args, **kwargs) 233 return orig(self, *args, **kwargs)
234 234
235 extensions.wrapfunction( 235 extensions.wrapfunction(
236 context.basefilectx, b'_adjustlinkrev', _adjustlinkrev 236 context.basefilectx, '_adjustlinkrev', _adjustlinkrev
237 ) 237 )
238 238
239 def _iscmd(orig, cmd): 239 def _iscmd(orig, cmd):
240 if cmd == b'x_rfl_getfiles': 240 if cmd == b'x_rfl_getfiles':
241 return False 241 return False
242 return orig(cmd) 242 return orig(cmd)
243 243
244 extensions.wrapfunction(wireprotoserver, b'iscmd', _iscmd) 244 extensions.wrapfunction(wireprotoserver, 'iscmd', _iscmd)
245 245
246 246
247 def _loadfileblob(repo, cachepath, path, node): 247 def _loadfileblob(repo, cachepath, path, node):
248 filecachepath = os.path.join(cachepath, path, hex(node)) 248 filecachepath = os.path.join(cachepath, path, hex(node))
249 if not os.path.exists(filecachepath) or os.path.getsize(filecachepath) == 0: 249 if not os.path.exists(filecachepath) or os.path.getsize(filecachepath) == 0: