Mercurial > public > mercurial-scm > hg-stable
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''' |