Adrian Buehlmann <adrian@cadifra.com> [Tue, 11 Jan 2011 14:10:16 +0100] rev 13281
lock: use util.unlink (
issue2537)
Adrian Buehlmann <adrian@cadifra.com> [Tue, 11 Jan 2011 14:10:16 +0100] rev 13280
reintroduces util.unlink, for POSIX and Windows.
windows: factor it out of rename
posix: add alias 'unlink' for os.unlink
Note that this new unlink function now has different semantics than the
unlink() we had before changeset
6bf39d88c857 ("rename util.unlink to
unlinkpath").
Adrian Buehlmann <adrian@cadifra.com> [Tue, 11 Jan 2011 14:10:16 +0100] rev 13279
opener: check exception for ENOENT
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.
jfh <jason@jasonfharris.com> [Tue, 04 Jan 2011 06:29:08 +0100] rev 13272
move tags.cache and branchheads.cache to a collected cache folder .hg/cache/
The generation of cache files like tags.cache and branchheads.cache is not an
actual reflection of things changing in the whole of the .hg directory (like eg
a commit or a rebase or something) but instead these cache files are just part
of bookkeeping. As such its convienant to allow various clients to ignore file
events to do with these cache files which would otherwise cause a double
refresh. Eg one refresh might occur after a commit, but the act of refreshing
after the commit would cause Mercurial to generate a new branchheads.cache which
would then cause a second refresh, for clients.
However if these cache files are moved into a directory like eg .hg/cache/ then
GUI clients on OSX (and possibly other platforms) can happily ignore file events
in this cache directory.
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 16 Jan 2011 17:26:34 +0100] rev 13271
addchangegroup: document the current locking semantics
Christian Ebert <blacktrash@gmx.net> [Sun, 16 Jan 2011 15:45:26 +0100] rev 13270
keyword: update documentation for kwshrink
* remove obsolete reference to potential problems with merge and import
* emphasize that running kwshrink before configuration changes which
affect active/expanded keywords is mandatory
StevenGBrown [Sun, 16 Jan 2011 19:12:54 +0800] rev 13269
tests: remove duplication of the CGI environment variables
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 16 Jan 2011 12:25:46 +0100] rev 13268
revlog: explicit test and explicit variable names
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 16 Jan 2011 12:24:48 +0100] rev 13267
revlog: if the nodemap is set, use the fast version of revlog.rev()
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 15 Jan 2011 15:06:53 +0100] rev 13266
revlog/parseindex: construct the nodemap if it is empty
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 15 Jan 2011 13:02:19 +0100] rev 13265
revlog: always add the magic nullid/nullrev entry in parseindex
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 15 Jan 2011 15:04:58 +0100] rev 13264
revlog/parseindex: no need to pass the file around
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 15 Jan 2011 12:44:28 +0100] rev 13263
parsers.c: fix comment
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 15 Jan 2011 12:28:10 +0100] rev 13262
perf: there is no lazy index anymore
Matt Mackall <mpm@selenic.com> [Wed, 12 Jan 2011 13:54:39 -0600] rev 13261
pure: update index parsing
Matt Mackall <mpm@selenic.com> [Wed, 12 Jan 2011 11:34:42 -0600] rev 13260
perf: fix ordering of invalidate in perfindex
Matt Mackall <mpm@selenic.com> [Tue, 11 Jan 2011 21:52:03 -0600] rev 13259
revlog: do revlog node->rev mapping by scanning
Now that the nodemap is lazily created, we use linear scanning back
from tip for typical node to rev mapping. Given that nodemap creation
is O(n log n) and revisions searched for are usually very close to
tip, this is often a significant performance win for a small number of
searches.
When we do end up building a nodemap for bulk lookups, the scanning
function is replaced with a hash lookup.
Matt Mackall <mpm@selenic.com> [Tue, 11 Jan 2011 17:12:32 -0600] rev 13258
revlog: introduce a cache for partial lookups
Partial lookups are always O(n), and often we look up the same
one multiple times.