Adrian Buehlmann <adrian@cadifra.com> [Tue, 11 Jan 2011 14:10:16 +0100] rev 13278
windows.rename: check OSError for EEXIST
For example, if src has been opened with Python's open(), os.rename will
raise EACCES. Continuing in that case is pointless.
Matt Mackall <mpm@selenic.com> [Tue, 18 Jan 2011 15:55:49 -0600] rev 13277
perf: restore lazyindex hack
This hack (and the module it lives in) exist so that performance can
be compared across different hg versions.
Matt Mackall <mpm@selenic.com> [Tue, 18 Jan 2011 15:55:48 -0600] rev 13276
revlog: pass rev to _checkhash
Matt Mackall <mpm@selenic.com> [Tue, 18 Jan 2011 15:55:46 -0600] rev 13275
revlog: incrementally build node cache with linear searches
This avoids needing to prime the cache for operations like verify
which visit most or all of the index.
Adrian Buehlmann <adrian@cadifra.com> [Fri, 07 Jan 2011 10:48:30 +0100] rev 13274
bundlerepo: use less intrusive util.posixfile to open bundle
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Jan 2011 23:54:01 +0100] rev 13273
osutil: treat open modes 'w' and 'a' as 'w+' and 'a+' in posixfile
to work around http://support.microsoft.com/kb/899149.
Also, Microsoft's documentation of the CreateFile Windows API says (quote):
When an application creates a file across a network, it is better to use
GENERIC_READ | GENERIC_WRITE for dwDesiredAccess than to use
GENERIC_WRITE alone. The resulting code is faster, because the
redirector can use the cache manager and send fewer SMBs with more data.
This combination also avoids an issue where writing to a file across a
network can occasionally return ERROR_ACCESS_DENIED.