Mercurial > hg-stable
changeset 45216:4ebc5f325bed stable
log: fix crash and bad filematcher lookup by -fr'wdir()' PATH
"-fr'wdir()' ADDED-PATH" is still wrong, which will be fixed in default
branch.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Fri, 11 Sep 2020 14:41:05 +0900 |
parents | 81b4e7c866ec |
children | bd5b2b29b82d 4532e7ebde4d |
files | mercurial/dagop.py mercurial/logcmdutil.py tests/test-log.t |
diffstat | 3 files changed, 48 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dagop.py Wed Sep 09 14:48:55 2020 -0400 +++ b/mercurial/dagop.py Fri Sep 11 14:41:05 2020 +0900 @@ -17,6 +17,7 @@ node, patch, pycompat, + scmutil, smartset, ) @@ -90,7 +91,7 @@ visitheap = [] def addvisit(fctx): - rev = fctx.rev() + rev = scmutil.intrev(fctx) if rev not in visit: visit[rev] = set() heapq.heappush(visitheap, -rev) # max heap
--- a/mercurial/logcmdutil.py Wed Sep 09 14:48:55 2020 -0400 +++ b/mercurial/logcmdutil.py Fri Sep 11 14:41:05 2020 +0900 @@ -753,7 +753,7 @@ fcache = {} def filematcher(ctx): - return scmutil.matchfiles(repo, fcache.get(ctx.rev(), [])) + return scmutil.matchfiles(repo, fcache.get(scmutil.intrev(ctx), [])) def revgen(): for rev, cs in dagop.filectxancestors(fctxs, followfirst=followfirst):
--- a/tests/test-log.t Wed Sep 09 14:48:55 2020 -0400 +++ b/tests/test-log.t Fri Sep 11 14:41:05 2020 +0900 @@ -2263,6 +2263,51 @@ } ] +follow files from wdir + + $ hg cp d1/f1 f1-copy + $ hg stat --all + M d1/f1 + A d1/f2 + A f1-copy + d1/f1 + R .d6/f1 + C D2/f1 + C D3.i/f1 + C d4.hg/f1 + C d5.d/f1 + + $ hg log -T '== {rev} ==\n' -fr'wdir()' --git --stat d5.d/f1 + == 2147483647 == + + == 0 == + d5.d/f1 | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + + + $ hg log -T '== {rev} ==\n' -fr'wdir()' --git --stat d1/f1 + == 2147483647 == + d1/f1 | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + + == 0 == + d1/f1 | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + + + BROKEN: added file should exist in wdir + $ hg log -T '== {rev} ==\n' -fr'wdir()' --git --stat d1/f2 + abort: cannot follow nonexistent file: "d1/f2" + [255] + + BROKEN: copied file should exist in wdir + $ hg log -T '== {rev} ==\n' -fr'wdir()' --git --stat f1-copy + abort: cannot follow nonexistent file: "f1-copy" + [255] + + $ hg log -T '== {rev} ==\n' -fr'wdir()' --git --stat notfound + notfound: $ENOENT$ + $ hg revert -aqC Check that adding an arbitrary name shows up in log automatically