[Bug 3618] New: hg log -f may fail to show anything earlier than very large changeset

bugzilla-daemon at bz.selenic.com bugzilla-daemon at bz.selenic.com
Sun Sep 9 05:18:43 CDT 2012


          Priority: normal
            Bug ID: 3618
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: hg log -f may fail to show anything earlier than very
                    large changeset
          Severity: bug
    Classification: Unclassified
                OS: Windows
          Reporter: deg at degel.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 2.2.2
         Component: Mercurial
           Product: Mercurial


I do
  hg -f aParticularFile
and it shows only the latest revision, aborting with the message
  "abort: can only follow copies/renames for explicit filenames"


This is in an old repository that I have just moved over from subversion.
Last year, I did a major re-org of the subversion repository, moving several
large trees of files to be together under a new common root directory.

Most of these trees where primarily historic, so the move is the latest
revision in the history of many of the files. Much important history is
contained in the earlier revisions (and particularly in the revision comments).

At least one of the moves was large... only a few directories were moved at one
time, but they contained more than 5000 files altogether.

When I try to look at the history of one of these moved files, it only shows
the latest revision to it: the big move. Then the "hg log -f" command aborts
with the error message "abort: can only follow copies/renames for explicit

"hg log -v -f aParticularFile" does successfully show the names of all the
files that were in the move.
"hg blame aParticularFile" does successfully list the revisions of each line
(earlier revisions than the big move).
So, I believe that the "hg convert" worked correctly and all the information is
intact in my Mercurial repo.  Therefore, I've classified this bug as being in
the core, rather than in convert.

I've not looked at the source, but I would guess that the problem is that
Mercurial's "log -f" command cannot handle such a long list of files. This
would be annoying but an acceptable failure if I had asked to see the list ("hg
log -v -f"). It's worse that the failure occurs even when I don't care about
all the names. Far worse is that it then aborts out of showing any of the other
revisions to the file that occurred earlier.


You are receiving this mail because:
You are on the CC list for the bug.

More information about the Mercurial-devel mailing list