diff --git a/hgext3rd/p4fastimport/__init__.py b/hgext3rd/p4fastimport/__init__.py --- a/hgext3rd/p4fastimport/__init__.py +++ b/hgext3rd/p4fastimport/__init__.py @@ -52,7 +52,7 @@ # workaround by not allowing inlined revlogs at all. revlog.REVLOG_DEFAULT_VERSION = revlog.REVLOG_DEFAULT_FORMAT -def reposetup(ui, repo): +def _reposetup(ui, repo): def nothing(orig, *args, **kwargs): pass def yoloverify(orig, *args, **kwargs): @@ -60,14 +60,16 @@ # during their repo setup. repo.svfs.options['lfsbypass'] = True return orig(*args, **kwargs) - def handlelfs(loaded): - if loaded: - lfs = extensions.find('lfs') - extensions.wrapfunction(lfs.blobstore.local, 'write', nothing) - extensions.wrapfunction(lfs.blobstore.local, 'read', nothing) extensions.wrapfunction(verify.verifier, 'verify', yoloverify) - extensions.afterloaded('lfs', handlelfs) + + try: + lfs = extensions.find('lfs') + except KeyError: + pass + else: + extensions.wrapfunction(lfs.blobstore.local, 'write', nothing) + extensions.wrapfunction(lfs.blobstore.local, 'read', nothing) def writebookmark(tr, repo, revisions, name): if len(revisions) > 0: @@ -190,6 +192,8 @@ _('[-P PATH] [-B NAME] [--limit N] [CLIENT]'), inferrepo=True) def p4fastimport(ui, repo, client, **opts): + _reposetup(ui, repo) + if 'fncache' in repo.requirements: raise error.Abort(_('fncache must be disabled')) @@ -336,6 +340,8 @@ _('[-P PATH] client [-B NAME] bookmarkname'), ) def p4syncimport(ui, repo, client, **opts): + _reposetup(ui, repo) + if opts.get('bookmark'): scmutil.checknewlabel(repo, opts['bookmark'], 'bookmark') @@ -419,6 +425,8 @@ ('r', 'rev', '.', _('display LFS files in REV')), ('A', 'all', None, _('display LFS files all revisions'))]) def debugscanlfs(ui, repo, **opts): + _reposetup(ui, repo) + lfs = extensions.find('lfs') def display(repo, filename, flog, rev): filenode = flog.node(rev)