comparison mercurial/hg.py @ 49805:ebb5e38fdafc

peer-or-repo: build a repo directly in the `repo` function We skip the ambiguous _peerorrepo function to explicitly build a repo within the dedicated function. The peer scheme are therefore no longer considered to build the object.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 29 Nov 2022 22:21:19 +0100
parents c0acf5440fe1
children c4731eee1c8f
comparison
equal deleted inserted replaced
49804:c0acf5440fe1 49805:ebb5e38fdafc
229 presetupfuncs=None, 229 presetupfuncs=None,
230 intents=None, 230 intents=None,
231 createopts=None, 231 createopts=None,
232 ): 232 ):
233 """return a repository object for the specified path""" 233 """return a repository object for the specified path"""
234 peer = _peerorrepo( 234 scheme = urlutil.url(path).scheme
235 if scheme is None:
236 scheme = b'file'
237 cls = repo_schemes.get(scheme)
238 if cls is None:
239 if scheme in peer_schemes:
240 raise error.Abort(_(b"repository '%s' is not local") % path)
241 cls = LocalFactory
242 repo = cls.instance(
235 ui, 243 ui,
236 path, 244 path,
237 create, 245 create,
238 presetupfuncs=presetupfuncs,
239 intents=intents, 246 intents=intents,
240 createopts=createopts, 247 createopts=createopts,
241 ) 248 )
242 repo = peer.local() 249 _setup_repo_or_peer(ui, repo, presetupfuncs=presetupfuncs)
243 if not repo:
244 raise error.Abort(
245 _(b"repository '%s' is not local") % (path or peer.url())
246 )
247 return repo.filtered(b'visible') 250 return repo.filtered(b'visible')
248 251
249 252
250 def peer(uiorrepo, opts, path, create=False, intents=None, createopts=None): 253 def peer(uiorrepo, opts, path, create=False, intents=None, createopts=None):
251 '''return a repository peer for the specified path''' 254 '''return a repository peer for the specified path'''