Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:22:45 +0100] rev 15574
largefiles: simplify lfutil.writehash
This was unnecessarily verbose: there is no need to unlink the file
when we open it for write anyway, and there is no need to check if the
file exists after we created it.
Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:22:44 +0100] rev 15573
merge with stable
Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:13:18 +0100] rev 15572
largefiles: copy files into .hg/largefiles atomically
Copying from the user cache into .hg/largefiles could fail halfway
though with a partially written file.
Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:12:13 +0100] rev 15571
largefiles: write .hg/largefiles/ files atomically
Before, it was possible to create a
.hg/largefiles/hash
file with truncated content, i.e., content where
SHA-1(content) != hash
This breaks the fundamental invariant in largefiles that the file
content for files in .hg/largefiles hash to the filename.