mercurial/commands.py
changeset 41368 609d6d8646db
parent 41367 b44f1703b28c
child 41382 2f2a7ea62e9a
equal deleted inserted replaced
41367:b44f1703b28c 41368:609d6d8646db
  2923             fm.startitem()
  2923             fm.startitem()
  2924             fm.write('text', '%s', l.line[p:])
  2924             fm.write('text', '%s', l.line[p:])
  2925             fm.data(matched=False)
  2925             fm.data(matched=False)
  2926         fm.end()
  2926         fm.end()
  2927 
  2927 
  2928     skip = {}
  2928     skip = set()
  2929     revfiles = {}
  2929     revfiles = {}
  2930     match = scmutil.match(repo[None], pats, opts)
  2930     match = scmutil.match(repo[None], pats, opts)
  2931     found = False
  2931     found = False
  2932     follow = opts.get('follow')
  2932     follow = opts.get('follow')
  2933 
  2933 
  2952                     copied = ctx[fn].renamed()
  2952                     copied = ctx[fn].renamed()
  2953                 copy = copied and copied[0]
  2953                 copy = copied and copied[0]
  2954                 if copy:
  2954                 if copy:
  2955                     copies.setdefault(rev, {})[fn] = copy
  2955                     copies.setdefault(rev, {})[fn] = copy
  2956                     if fn in skip:
  2956                     if fn in skip:
  2957                         skip[copy] = True
  2957                         skip.add(copy)
  2958             if fn in skip:
  2958             if fn in skip:
  2959                 continue
  2959                 continue
  2960             files.append(fn)
  2960             files.append(fn)
  2961 
  2961 
  2962             if fn not in matches[rev]:
  2962             if fn not in matches[rev]:
  2982         for fn in sorted(revfiles.get(rev, [])):
  2982         for fn in sorted(revfiles.get(rev, [])):
  2983             states = matches[rev][fn]
  2983             states = matches[rev][fn]
  2984             copy = copies.get(rev, {}).get(fn)
  2984             copy = copies.get(rev, {}).get(fn)
  2985             if fn in skip:
  2985             if fn in skip:
  2986                 if copy:
  2986                 if copy:
  2987                     skip[copy] = True
  2987                     skip.add(copy)
  2988                 continue
  2988                 continue
  2989             pstates = matches.get(parent, {}).get(copy or fn, [])
  2989             pstates = matches.get(parent, {}).get(copy or fn, [])
  2990             if pstates or states:
  2990             if pstates or states:
  2991                 r = display(fm, fn, ctx, pstates, states)
  2991                 r = display(fm, fn, ctx, pstates, states)
  2992                 found = found or r
  2992                 found = found or r
  2993                 if r and not diff and not all_files:
  2993                 if r and not diff and not all_files:
  2994                     skip[fn] = True
  2994                     skip.add(fn)
  2995                     if copy:
  2995                     if copy:
  2996                         skip[copy] = True
  2996                         skip.add(copy)
  2997         del revfiles[rev]
  2997         del revfiles[rev]
  2998         # We will keep the matches dict for the duration of the window
  2998         # We will keep the matches dict for the duration of the window
  2999         # clear the matches dict once the window is over
  2999         # clear the matches dict once the window is over
  3000         if not revfiles:
  3000         if not revfiles:
  3001             matches.clear()
  3001             matches.clear()