mercurial/commands.py
changeset 44850 8d552701806d
parent 44849 f90957c947f4
child 44851 708ad5cf5e5a
equal deleted inserted replaced
44849:f90957c947f4 44850:8d552701806d
  3592         return content
  3592         return content
  3593 
  3593 
  3594     def prep(ctx, fns):
  3594     def prep(ctx, fns):
  3595         rev = ctx.rev()
  3595         rev = ctx.rev()
  3596         pctx = ctx.p1()
  3596         pctx = ctx.p1()
  3597         parent = pctx.rev()
       
  3598         matches.setdefault(rev, {})
  3597         matches.setdefault(rev, {})
  3599         matches.setdefault(parent, {})
  3598         if diff:
       
  3599             parent = pctx.rev()
       
  3600             matches.setdefault(parent, {})
  3600         files = revfiles.setdefault(rev, [])
  3601         files = revfiles.setdefault(rev, [])
  3601         for fn in fns:
  3602         for fn in fns:
  3602             flog = getfile(fn)
  3603             flog = getfile(fn)
  3603             try:
  3604             try:
  3604                 fnode = ctx.filenode(fn)
  3605                 fnode = ctx.filenode(fn)
  3618 
  3619 
  3619             if fn not in matches[rev]:
  3620             if fn not in matches[rev]:
  3620                 content = get_file_content(fn, flog, fnode, ctx, rev)
  3621                 content = get_file_content(fn, flog, fnode, ctx, rev)
  3621                 grepbody(fn, rev, content)
  3622                 grepbody(fn, rev, content)
  3622 
  3623 
  3623             pfn = copy or fn
  3624             if diff:
  3624             if pfn not in matches[parent]:
  3625                 pfn = copy or fn
  3625                 try:
  3626                 if pfn not in matches[parent]:
  3626                     pfnode = pctx.filenode(pfn)
  3627                     try:
  3627                     pcontent = get_file_content(pfn, flog, pfnode, pctx, parent)
  3628                         pfnode = pctx.filenode(pfn)
  3628                     grepbody(pfn, parent, pcontent)
  3629                         pcontent = get_file_content(
  3629                 except error.LookupError:
  3630                             pfn, flog, pfnode, pctx, parent
  3630                     pass
  3631                         )
       
  3632                         grepbody(pfn, parent, pcontent)
       
  3633                     except error.LookupError:
       
  3634                         pass
  3631 
  3635 
  3632     ui.pager(b'grep')
  3636     ui.pager(b'grep')
  3633     fm = ui.formatter(b'grep', opts)
  3637     fm = ui.formatter(b'grep', opts)
  3634     for ctx in cmdutil.walkchangerevs(repo, match, opts, prep):
  3638     for ctx in cmdutil.walkchangerevs(repo, match, opts, prep):
  3635         rev = ctx.rev()
  3639         rev = ctx.rev()