Mercurial > hg
changeset 12972:7916a84c0758 stable
log: fix log -rREV FILE when REV isnt the last filerev (issue2492)
Regression from 99cafcae25d9. That previous commit is not supposed
to affect log calls without --follow, so we step out of this
codepath if follow is not True, and it's enough to fix the
regression.
When --follow is given, we fix the issue by taking into account
changesets that have a rev > maxrev to build the filegraph: even if
those files are not included in the final result, it's still needed
to walk correctly the graph from the end of the filelog to minrev, to
track accurately renames.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Thu, 11 Nov 2010 02:10:37 +0900 |
parents | 15390d1a3cfc |
children | 6e0a9f9227bd 75e4fade4ad9 |
files | mercurial/cmdutil.py tests/test-log.t |
diffstat | 2 files changed, 39 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Thu Nov 11 02:05:02 2010 +0900 +++ b/mercurial/cmdutil.py Thu Nov 11 02:10:37 2010 +0900 @@ -1180,11 +1180,20 @@ # iterate from latest to oldest revision for rev, flparentlinkrevs, copied in filerevgen(filelog, last): - if rev > maxrev or rev not in ancestors: - continue - # XXX insert 1327 fix here - if flparentlinkrevs: - ancestors.update(flparentlinkrevs) + if not follow: + if rev > maxrev: + continue + else: + # Note that last might not be the first interesting + # rev to us: + # if the file has been changed after maxrev, we'll + # have linkrev(last) > maxrev, and we still need + # to explore the file graph + if rev not in ancestors: + continue + # XXX insert 1327 fix here + if flparentlinkrevs: + ancestors.update(flparentlinkrevs) fncache.setdefault(rev, []).append(file_) wanted.add(rev)
--- a/tests/test-log.t Thu Nov 11 02:05:02 2010 +0900 +++ b/tests/test-log.t Thu Nov 11 02:10:37 2010 +0900 @@ -1020,6 +1020,15 @@ summary: add foo, related +Also check when maxrev < lastrevfilelog + + $ hg --traceback log -f -r4 foo + changeset: 4:88176d361b69 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: add foo, related + + Issue2383: hg log showing _less_ differences than hg diff $ hg init issue2383 @@ -1092,3 +1101,19 @@ +b $ cd .. + +'hg log -r rev fn' when last(filelog(fn)) != rev + + $ hg init simplelog; cd simplelog + $ echo f > a + $ hg ci -Am'a' -d '0 0' + adding a + $ echo f >> a + $ hg ci -Am'a bis' -d '1 0' + + $ hg log -r0 a + changeset: 0:9f758d63dcde + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: a +