[PATCH 2 of 2 STABLE] store: add auto detection for hardlink count blindness (issue1866)
Adrian Buehlmann
adrian at cadifra.com
Wed Nov 3 15:18:41 CDT 2010
On 03.11.2010 17:52, Matt Mackall wrote:
> ..and then I went on to point out that we shouldn't even be testing
> nlinks on 'w'rite (where COW is pointless), but only on 'a'ppend. On
> write, we should (and usually do, see localrepo.wwrite) unconditionally
> break links by first unlinking any existing file.
So, should we do
diff -r 0e0a52bd58f9 mercurial/util.py
--- a/mercurial/util.py Thu Oct 21 16:04:34 2010 -0500
+++ b/mercurial/util.py Wed Nov 03 21:13:03 2010 +0100
@@ -871,7 +871,10 @@
if atomictemp:
return atomictempfile(f, mode, self.createmode)
if nlink > 1:
- rename(mktempcopy(f), f)
+ if 'w' in mode:
+ os.unlink(f)
+ else:
+ rename(mktempcopy(f), f)
fp = posixfile(f, mode)
if nlink == 0:
self._fixfilemode(f)
as a first step?
More information about the Mercurial-devel
mailing list