[Bug 3521] New: largefiles will "stat" ".hgignored" files

bugzilla-daemon at bz.selenic.com bugzilla-daemon at bz.selenic.com
Sun Jul 1 18:57:16 CDT 2012


http://bz.selenic.com/show_bug.cgi?id=3521

          Priority: normal
            Bug ID: 3521
                CC: mercurial-devel at selenic.com, natosha at gmail.com
          Assignee: bugzilla at selenic.com
           Summary: largefiles will "stat" ".hgignored" files
          Severity: bug
    Classification: Unclassified
                OS: All
          Reporter: jcea at jcea.es
          Hardware: PC
            Status: UNCONFIRMED
           Version: 2.2.2
         Component: largefiles
           Product: Mercurial

".hgignore" file allows to prune directories, so effectively ignoring their
content. This is a massive performance feature when dealing, for instance, with
"build" directories.

But when "largefiles" extension is enabled, Mercurial will ignore ".hgignore"
content and will STAT *EVERYTHING*, recursively. This is a huge performance
regression, making mercurial unusable in some environments where previously
results were instantaneous.

Discussion: http://selenic.com/pipermail/mercurial/2012-July/043501.html

To reproduce:

1. Create a new directory and go inside.

2. Create a new repository with "hg init".

3. Create file ".hgignore" with content "^z$".

4. Create a directory called "z".

5. Create a new file in "z/a.txt".

6. Do "hg status" and verify that "z/a.txt" is ignored, as it should.

7. Under linux, do "strace -f hg status 2>&1 |grep a.txt" and confirm
than mercurial is STATing that file. Under Solaris you can use "truss"
instead of "strace".

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


More information about the Mercurial-devel mailing list