diff -r 3d22aef3ecd5 -r bfeab472e3c0 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Sep 17 16:29:12 2018 -0700 +++ b/mercurial/localrepo.py Wed Sep 12 11:02:16 2018 -0700 @@ -376,6 +376,18 @@ # set to reflect that the extension knows how to handle that requirements. featuresetupfuncs = set() +def makelocalrepository(ui, path, intents=None): + """Create a local repository object. + + Given arguments needed to construct a local repository, this function + derives a type suitable for representing that repository and returns an + instance of it. + + The returned object conforms to the ``repository.completelocalrepository`` + interface. + """ + return localrepository(ui, path, intents=intents) + @interfaceutil.implementer(repository.completelocalrepository) class localrepository(object): @@ -2388,7 +2400,7 @@ if create: createrepository(ui, localpath, createopts=createopts) - return localrepository(ui, localpath, intents=intents) + return makelocalrepository(ui, localpath, intents=intents) def islocal(path): return True