hgext/fastannotate/commands.py
changeset 50925 d718eddf01d9
parent 48875 6000f5b25c9b
child 51710 45d5e9a0f6a6
equal deleted inserted replaced
50924:7a8ea1397816 50925:d718eddf01d9
    17     logcmdutil,
    17     logcmdutil,
    18     patch,
    18     patch,
    19     pycompat,
    19     pycompat,
    20     registrar,
    20     registrar,
    21     scmutil,
    21     scmutil,
    22     util,
       
    23 )
    22 )
    24 
    23 
    25 from . import (
    24 from . import (
    26     context as facontext,
    25     context as facontext,
    27     error as faerror,
    26     error as faerror,
   216 
   215 
   217     # paths will be used for prefetching and the real annotating
   216     # paths will be used for prefetching and the real annotating
   218     paths = list(_matchpaths(repo, rev, pats, opts, aopts))
   217     paths = list(_matchpaths(repo, rev, pats, opts, aopts))
   219 
   218 
   220     # for client, prefetch from the server
   219     # for client, prefetch from the server
   221     if util.safehasattr(repo, 'prefetchfastannotate'):
   220     if hasattr(repo, 'prefetchfastannotate'):
   222         repo.prefetchfastannotate(paths)
   221         repo.prefetchfastannotate(paths)
   223 
   222 
   224     for path in paths:
   223     for path in paths:
   225         result = lines = existinglines = None
   224         result = lines = existinglines = None
   226         while True:
   225         while True:
   271     if ui.configbool(b'fastannotate', b'forcetext'):
   270     if ui.configbool(b'fastannotate', b'forcetext'):
   272         opts['text'] = True
   271         opts['text'] = True
   273 
   272 
   274     # check if we need to do prefetch (client-side)
   273     # check if we need to do prefetch (client-side)
   275     rev = opts.get('rev')
   274     rev = opts.get('rev')
   276     if util.safehasattr(repo, 'prefetchfastannotate') and rev is not None:
   275     if hasattr(repo, 'prefetchfastannotate') and rev is not None:
   277         paths = list(_matchpaths(repo, rev, pats, pycompat.byteskwargs(opts)))
   276         paths = list(_matchpaths(repo, rev, pats, pycompat.byteskwargs(opts)))
   278         repo.prefetchfastannotate(paths)
   277         repo.prefetchfastannotate(paths)
   279 
   278 
   280     return orig(ui, repo, *pats, **opts)
   279     return orig(ui, repo, *pats, **opts)
   281 
   280 
   318     if ui.configbool(b'fastannotate', b'unfilteredrepo'):
   317     if ui.configbool(b'fastannotate', b'unfilteredrepo'):
   319         repo = repo.unfiltered()
   318         repo = repo.unfiltered()
   320     ctx = logcmdutil.revsingle(repo, rev)
   319     ctx = logcmdutil.revsingle(repo, rev)
   321     m = scmutil.match(ctx, pats, opts)
   320     m = scmutil.match(ctx, pats, opts)
   322     paths = list(ctx.walk(m))
   321     paths = list(ctx.walk(m))
   323     if util.safehasattr(repo, 'prefetchfastannotate'):
   322     if hasattr(repo, 'prefetchfastannotate'):
   324         # client
   323         # client
   325         if opts.get(b'REV'):
   324         if opts.get(b'REV'):
   326             raise error.Abort(_(b'--rev cannot be used for client'))
   325             raise error.Abort(_(b'--rev cannot be used for client'))
   327         repo.prefetchfastannotate(paths)
   326         repo.prefetchfastannotate(paths)
   328     else:
   327     else: