Angel Ezquerra <angel.ezquerra@gmail.com> [Mon, 25 Jul 2011 08:28:37 +0200] rev 14938
help: add "web/logoimg" setting description
Matt Mackall <mpm@selenic.com> [Mon, 25 Jul 2011 12:58:47 -0500] rev 14937
filecache: fix check-code complaint
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:57 +0300] rev 14936
localrepo: unify tag related info into a tagscache class
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14935
localrepo: make invalidate() walk _filecache
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14934
localrepo: decorate manifest() with filecache
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14933
localrepo: decorate _bookmarks/current with filecache
nodebookmarks() can be cached as well, leaving for later
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14932
localrepo: decorate changelog() with filecache
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14931
localrepo: refresh filecache entries after releasing a repo.lock()
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14930
localrepo: decorate dirstate() with filecache
We refresh the stat info when releasing repo.wlock(), right after writing it.
Also, invalidate the dirstate by deleting its attribute. This will force a
stat by the decorator that actually checks if anything changed, rather than
reading it again every time.
Note that prior to this, there was a single dirstate instance created for a
localrepo. It was invalidated by calling dirstate.invalidated(), clearing
its internal attributes.
As a consequence, the following construct is no longer safe:
ds = repo.dirstate # keep a reference to the repo's dirstate
wlock = repo.wlock()
try:
ds.setparents(...)
finally:
wlock.release() # dirstate should be written here
Since it's possible that the dirstate was modified between lines #1 and #2,
therefore changes to the old dirstate won't get written when the lock releases,
because a new instance was created by the decorator.
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14929
localrepo: add a cache with stat info for files under .hg/
Idan Kamara <idankk86@gmail.com> [Sat, 09 Jul 2011 19:06:59 +0300] rev 14928
scmutil: introduce filecache
The idea is being able to associate a file with a property, and watch
that file stat info for modifications when we decide it's important for it to
be up-to-date. Once it changes, we recreate the object.
On filesystems that can't uniquely identify a file, we always recreate.
As a consequence, localrepo.invalidate() will become much less expensive in the
case where nothing changed on-disk.
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:03:02 +0300] rev 14927
posix, windows: introduce cachestat
This class contains a stat result, and possibly other file info to reliably
determine between two points in time whether a file has changed.
Uniquely identifying a file gives us that reliability because we either
atomic rename or append. So one of two will happen: the file 'id' will change,
or the size of the file will change.
posix implements it simply by calling os.stat() and checking if the result
has st_ino.
For now on Windows we always assume the path is uncacheable. This can be
improved on NTFS due to file IDs: http://msdn.microsoft.com/en-us/library/
aa363788(v=vs.85).aspx
So we need to find out if a file path is on an NTFS drive, for that we have:
- GetVolumeInformation, which unfortunately only works with a root path (but is available on XP)
- GetVolumeInformationByHandleW, works on a full file path but requires Vista or higher
Adrian Buehlmann <adrian@cadifra.com> [Sat, 23 Jul 2011 12:29:52 +0200] rev 14926
util: eliminate wildcard imports
Matt Mackall <mpm@selenic.com> [Sat, 23 Jul 2011 14:33:35 -0500] rev 14925
templater: use a global funcs table
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Jul 2011 06:09:14 +0200] rev 14924
ui: config path relative to repo root
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Jul 2011 06:08:52 +0200] rev 14923
ui: providing no default value to configpath should not raise an Error
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Jul 2011 06:08:49 +0200] rev 14922
ui: fix error, base can not be a list
Matt Mackall <mpm@selenic.com> [Sat, 23 Jul 2011 11:52:25 -0500] rev 14921
merge with stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 22 Jul 2011 20:31:15 -0300] rev 14920
test-i18n, i18n-pt_BR: updated test message changed in
41c3a71c318d
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 22 Jul 2011 20:27:40 -0300] rev 14919
i18n-pt_BR: synchronized with
a934b9249574
Matt Mackall <mpm@selenic.com> [Fri, 22 Jul 2011 17:17:23 -0500] rev 14918
merge with stable
Augie Fackler <durin42@gmail.com> [Thu, 21 Jul 2011 15:56:15 -0500] rev 14917
rebase: remove trailing whitespace found by check-code
Lee Cantey <lcantey@gmail.com> [Fri, 22 Jul 2011 08:03:47 -0700] rev 14916
hooks: use python 2.4 compatible exception handling
Matt Mackall <mpm@selenic.com> [Fri, 22 Jul 2011 17:11:35 -0500] rev 14915
url: handle urls of the form file:///c:/foo/bar/ correctly
David Golub <davidg@fogcreek.com> [Thu, 21 Jul 2011 16:02:34 -0400] rev 14914
dispatch: avoid double backslashes in error message
The use of %r in the format string caused Python to display Windows paths with
double backslashes.
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 21 Jul 2011 15:10:16 +0200] rev 14913
hgweb: add a "web/logoimg" setting to customize the web logo image
This change complements the existing web/logourl setting, and lets the user
customize the logo image that is shown on many of the hg server pages.
If this setting is not set, hglogo.png is used.
Adrian Buehlmann <adrian@cadifra.com> [Thu, 21 Jul 2011 11:05:26 +0200] rev 14912
util: move windows and posix wildcard imports to begin of file
Adrian Buehlmann <adrian@cadifra.com> [Fri, 22 Jul 2011 10:35:05 +0200] rev 14911
util: move "default" hidewindow to posix.py
There is a hidewindow in win32.py, which we get via windows.py
Adrian Buehlmann <adrian@cadifra.com> [Fri, 22 Jul 2011 10:31:56 +0200] rev 14910
util: move "default" lookupreg to posix.py
There is a lookupreg in win32.py, which we get via windows.py
Adrian Buehlmann <adrian@cadifra.com> [Fri, 22 Jul 2011 09:55:46 +0200] rev 14909
util: move "default" unlinkpath to posix.py
we have a unlinkpath in windows.py