[Bug 4361] New: 00manifest.d.hgtmp1 can cause constant file copies + renames

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Mon Sep 8 13:26:37 CDT 2014


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

          Priority: normal
            Bug ID: 4361
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: 00manifest.d.hgtmp1 can cause constant file copies +
                    renames
          Severity: bug
    Classification: Unclassified
                OS: Mac OS
          Reporter: durham at fb.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 3.1.1
         Component: Mercurial
           Product: Mercurial

util.py:checknlink creates a *.hgtmp1 file when checking to see if hard links
are supported on the filesystem.  If *.hgtmp1 is accidentally not cleaned up
(from a crash, etc), it's existence will permanently cause checknlink to return
False (hardlink not supported).  This causes Mercurial to copy and rename each
revlog every time it tries to write to it, which results in performance
problems on large repos (60 second amends instead of 5 seconds).

One fix might be to use a unique suffix for each call to checknlink, so old
files don't interfere with future runs.

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


More information about the Mercurial-devel mailing list