[Bug 4479] New: transaction doesn't clean up old journal.backup.* files

mercurial-bugs at selenic.com mercurial-bugs at selenic.com
Sat Dec 20 05:50:20 UTC 2014


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

          Priority: normal
            Bug ID: 4479
                CC: mercurial-devel at selenic.com
          Assignee: bugzilla at selenic.com
           Summary: transaction doesn't clean up old journal.backup.*
                    files
          Severity: bug
    Classification: Unclassified
                OS: Mac OS
          Reporter: durham at fb.com
          Hardware: PC
            Status: UNCONFIRMED
           Version: 3.2.2
         Component: Mercurial
           Product: Mercurial

If an old journal.backup.* file is still on disk when a new transaction starts,
it can interfere with the creation of the new transaction.  When the new
transaction is closing and it begins to generate the final files, it uses
'util.copyfiles(filepath, backuppath, hardlink=hardlink)' in
transaction.addbackup to copy the original bookmarks/etc to the journal.  If
the old journal.backup.bookmarks still exists, the hardlink fails (because
os.link doesn't overwrite files) and it resorts to using shutil.copy().  This
is undesirable because of the performance, but also because shutil.copy()
performs a chmod under the hood, which requires that the file be owned by the
user, and not just writable.

This can interfere with server infrastructure where multiple users can all push
to the repo by being in the same unix group.

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


More information about the Mercurial-devel mailing list