This instance will be upgraded to Heptapod 0.26.0rc1 on 2021-10-25 at 14:00 UTC+2 (a few minutes of down time)

Commit 9b9890a0 authored by Yuya Nishihara's avatar Yuya Nishihara
Browse files

cmdutil: make walkchangerevs() call prepare with matcher instead of filenames

Prepares for migrating walkchangerevs() to logcmdutil's logic, which provides
matcher-based interface.
parent 9fead7d97069
......@@ -36,9 +36,8 @@ command = registrar.command(cmdtable)
testedwith = b'ships-with-hg-core'
def changedlines(ui, repo, ctx1, ctx2, fns):
def changedlines(ui, repo, ctx1, ctx2, fmatch):
added, removed = 0, 0
fmatch = scmutil.matchfiles(repo, fns)
diff = b''.join(patch.diff(repo, ctx1.node(), ctx2.node(), fmatch))
for l in diff.split(b'\n'):
if l.startswith(b"+") and not l.startswith(b"+++ "):
......@@ -79,7 +78,7 @@ def countrate(ui, repo, amap, *pats, **opts):
m = scmutil.match(repo[None], pats, opts)
def prep(ctx, fns):
def prep(ctx, fmatch):
rev = ctx.rev()
if df and not df(ctx.date()[0]): # doesn't match date format
return
......@@ -95,7 +94,7 @@ def countrate(ui, repo, amap, *pats, **opts):
return
ctx1 = parents[0]
lines = changedlines(ui, repo, ctx1, ctx, fns)
lines = changedlines(ui, repo, ctx1, ctx, fmatch)
rate[key] = [r + l for r, l in zip(rate.get(key, (0, 0)), lines)]
progress.increment()
......
......@@ -2574,7 +2574,7 @@ def walkchangerevs(repo, match, opts, prepare):
yield f
fns = fns_generator()
prepare(ctx, fns)
prepare(ctx, scmutil.matchfiles(repo, fns))
for rev in nrevs:
yield change(rev)
......
......@@ -3606,7 +3606,7 @@ def grep(ui, repo, pattern, *pats, **opts):
% {b'filename': fn, b'revnum': pycompat.bytestr(rev),}
)
def prep(ctx, fns):
def prep(ctx, fmatch):
rev = ctx.rev()
pctx = ctx.p1()
matches.setdefault(rev, {})
......@@ -3621,7 +3621,8 @@ def grep(ui, repo, pattern, *pats, **opts):
else:
contextmanager = util.nullcontextmanager
with contextmanager():
for fn in fns:
assert fmatch.isexact()
for fn in fmatch.files():
# fn might not exist in the revision (could be a file removed by
# the revision). We could check `fn not in ctx` even when rev is
# None, but it's less racy to protect againt that in readfile.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment