Thu, 11 Aug 2011 22:05:31 -0500 minirst: only strip leading newlines, not indentation
Matt Mackall <mpm@selenic.com> [Thu, 11 Aug 2011 22:05:31 -0500] rev 15036
minirst: only strip leading newlines, not indentation
Thu, 11 Aug 2011 14:34:03 -0500 ui: allow alternatives for config options
Matt Mackall <mpm@selenic.com> [Thu, 11 Aug 2011 14:34:03 -0500] rev 15035
ui: allow alternatives for config options
Wed, 10 Aug 2011 13:52:52 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 10 Aug 2011 13:52:52 -0500] rev 15034
merge with stable
Wed, 10 Aug 2011 13:40:01 -0500 parsers: avoid pointer aliasing stable
Matt Mackall <mpm@selenic.com> [Wed, 10 Aug 2011 13:40:01 -0500] rev 15033
parsers: avoid pointer aliasing Newer versions of GCC have aggressive pointer alias optimizations that might get fooled by our pointer manipulations. These issues shouldn't be encountered in practice because distutils compiles extensions with -fno-strict-alias but the code was not valid according to the standard.
Wed, 10 Aug 2011 13:25:35 -0500 graphlog: attempt to fix index overrun (issue2912) stable
Matt Mackall <mpm@selenic.com> [Wed, 10 Aug 2011 13:25:35 -0500] rev 15032
graphlog: attempt to fix index overrun (issue2912) This bug may be caused by file subgraphs have more than two parents per node. I have no idea if this fix is correct as the graphlog code is mysterious, but it seems to be fine on the available test case.
Sat, 06 Aug 2011 23:52:20 +0200 util: wrap lines with multi-byte characters correctly (issue2943)
Mads Kiilerich <mads@kiilerich.com> [Sat, 06 Aug 2011 23:52:20 +0200] rev 15031
util: wrap lines with multi-byte characters correctly (issue2943) This re-introduces the unicode conversion what was lost in d320e70442a5 5 years ago and had the comment: To avoid corrupting multi-byte characters in line, we must wrap a Unicode string instead of a bytestring.
Mon, 08 Aug 2011 11:34:52 +0100 keyword: avoid x = a and b or c
Christian Ebert <blacktrash@gmx.net> [Mon, 08 Aug 2011 11:34:52 +0100] rev 15030
keyword: avoid x = a and b or c
Tue, 09 Aug 2011 11:05:13 +0200 match: remove unused assignment
Martin Geisler <mg@aragost.com> [Tue, 09 Aug 2011 11:05:13 +0200] rev 15029
match: remove unused assignment The field is assigned again below with the constructor argument.
Sat, 06 Aug 2011 14:10:59 +0200 http: explain why the host is passed to urllib2 password manager
Patrick Mezard <pmezard@gmail.com> [Sat, 06 Aug 2011 14:10:59 +0200] rev 15028
http: explain why the host is passed to urllib2 password manager The original comment was in url.getauthinfo() and was lost in bf6156bab41b.
Fri, 05 Aug 2011 16:07:51 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 05 Aug 2011 16:07:51 -0500] rev 15027
merge with stable
Fri, 05 Aug 2011 00:39:54 +0200 test-http: test http authentication stable
Mads Kiilerich <mads@kiilerich.com> [Fri, 05 Aug 2011 00:39:54 +0200] rev 15026
test-http: test http authentication The extension hack is based on Henrik Stuart's hg-textauth.
Fri, 05 Aug 2011 21:05:41 +0200 http: pass user to readauthforuri() (fix 4a43e23b8c55) stable
Patrick Mezard <pmezard@gmail.com> [Fri, 05 Aug 2011 21:05:41 +0200] rev 15025
http: pass user to readauthforuri() (fix 4a43e23b8c55) urllib2 never handles URIs with credentials, we have to extract them and store them in the password manager before handing the stripped URI. Half of the changes deducing the username from the URI in 4a43e23b8c55 were incorrect. Instead, we retrieve the username from the password manager before passing to readauthforuri(). test-hgweb-auth.py was passing because the test itself was flawed: it was passing URIs with credentials to find_password(), which never happens.
Fri, 05 Aug 2011 21:05:40 +0200 http: strip credentials from urllib2 manager URIs (issue2885) stable
Patrick Mezard <pmezard@gmail.com> [Fri, 05 Aug 2011 21:05:40 +0200] rev 15024
http: strip credentials from urllib2 manager URIs (issue2885) urllib2 password manager does not strip credentials from URIs registered with add_password() and compare them with stripped URIs in find_password(). Remove credentials from URIs returned by util.url.authinfo(). It sometimes works when no port was specified as the URI host is registered too.
Thu, 04 Aug 2011 16:12:58 -0500 help: move option text display into a helper function
Matt Mackall <mpm@selenic.com> [Thu, 04 Aug 2011 16:12:58 -0500] rev 15023
help: move option text display into a helper function
Thu, 04 Aug 2011 15:36:15 -0500 help: move 'additional help topics' code
Matt Mackall <mpm@selenic.com> [Thu, 04 Aug 2011 15:36:15 -0500] rev 15022
help: move 'additional help topics' code
Thu, 04 Aug 2011 15:34:30 -0500 help: rename option_lists to optlist
Matt Mackall <mpm@selenic.com> [Thu, 04 Aug 2011 15:34:30 -0500] rev 15021
help: rename option_lists to optlist
Thu, 04 Aug 2011 15:08:41 -0500 help: drop with_version
Matt Mackall <mpm@selenic.com> [Thu, 04 Aug 2011 15:08:41 -0500] rev 15020
help: drop with_version If --version is specified, we print the version and exit (as documented).
Thu, 04 Aug 2011 19:41:23 +0300 dispatch: don't rewrap aliases that have the same definition stable
Idan Kamara <idankk86@gmail.com> [Thu, 04 Aug 2011 19:41:23 +0300] rev 15019
dispatch: don't rewrap aliases that have the same definition Previously aliases that overrode existing commands would wrap the old alias on every call to dispatch() (twice actually), which is an obvious re-entrancy issue for things like the command server or TortoiseHG.
Thu, 04 Aug 2011 02:51:29 +0200 url: really handle urls of the form file:///c:/foo/bar/ correctly stable
Mads Kiilerich <mads@kiilerich.com> [Thu, 04 Aug 2011 02:51:29 +0200] rev 15018
url: really handle urls of the form file:///c:/foo/bar/ correctly 28edd65000d9 made sure that paths that seemed to start with a windows drive letter would not get an extra leading slash. localpath should thus not try to handle this case by removing a leading slash, and this special handling is thus removed. (The localpath handling of this case was wrong anyway, because paths that look like they start with a windows drive letter can't have a leading slash.) A quick verification of this is to run 'hg id file:///c:/foo/bar/'.
Tue, 02 Aug 2011 15:21:10 -0400 wireproto: add out-of-band error class to allow remote repo to report errors
Andrew Pritchard <andrewp@fogcreek.com> [Tue, 02 Aug 2011 15:21:10 -0400] rev 15017
wireproto: add out-of-band error class to allow remote repo to report errors Older clients will still print the provided error message and not much else: over ssh, this will be each line prefixed with 'remote: ' in addition to an "abort: unexpected response: '\n'"; over http, this will be the '---%<---' banners in addition to the 'does not appear to be a repository' message. Currently, clients with this patch will display 'abort: remote error:\n' and the provided error text, but it is trivial to style the error text however is deemed appropriate.
Wed, 03 Aug 2011 16:41:14 -0500 windows: fix pyflakes warning on unused imports
Matt Mackall <mpm@selenic.com> [Wed, 03 Aug 2011 16:41:14 -0500] rev 15016
windows: fix pyflakes warning on unused imports This is ugly, but only marginally uglier than before, and it avoids hacking/disabling our pyflakes test
Tue, 02 Aug 2011 17:43:20 -0500 minirst: add decorateblocks search helper
Matt Mackall <mpm@selenic.com> [Tue, 02 Aug 2011 17:43:20 -0500] rev 15015
minirst: add decorateblocks search helper
Tue, 02 Aug 2011 17:43:18 -0500 minirst: add getsections helper
Matt Mackall <mpm@selenic.com> [Tue, 02 Aug 2011 17:43:18 -0500] rev 15014
minirst: add getsections helper
Tue, 02 Aug 2011 17:41:45 -0500 minirst: add formatblocks helper
Matt Mackall <mpm@selenic.com> [Tue, 02 Aug 2011 17:41:45 -0500] rev 15013
minirst: add formatblocks helper
Tue, 02 Aug 2011 14:54:38 -0500 minirst: add parse method to get document structure
Matt Mackall <mpm@selenic.com> [Tue, 02 Aug 2011 14:54:38 -0500] rev 15012
minirst: add parse method to get document structure
Tue, 02 Aug 2011 13:18:56 +0200 util: move copymode into posix.py and windows.py
Adrian Buehlmann <adrian@cadifra.com> [Tue, 02 Aug 2011 13:18:56 +0200] rev 15011
util: move copymode into posix.py and windows.py reducing it to a NOP on Windows. This eliminates a pointless stat call on Windows and reduces the risk of interferring with other processes (e.g. AV-scanners, file change watchers). See also http://mercurial.selenic.com/wiki/UnlinkingFilesOnWindows, item 2d
Tue, 02 Aug 2011 12:29:48 +0200 util: factor new function copymode out of mktempcopy
Adrian Buehlmann <adrian@cadifra.com> [Tue, 02 Aug 2011 12:29:48 +0200] rev 15010
util: factor new function copymode out of mktempcopy
Tue, 02 Aug 2011 11:32:39 +0200 revert: introduce short option -C for --no-backup
Adrian Buehlmann <adrian@cadifra.com> [Tue, 02 Aug 2011 11:32:39 +0200] rev 15009
revert: introduce short option -C for --no-backup Corresponds to -C of the update command. It's much more convenient to use: $ hg revert -aC than having to type $ hg revert -a --no-backup I think the 'no-backup' case is a frequent use case. Introducing short option -C here fits with the muscle memory we have from 'hg update -C', which is described there as "discard uncommitted changes (no backup)".
Mon, 01 Aug 2011 18:10:05 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 18:10:05 -0500] rev 15008
merge with stable
Mon, 01 Aug 2011 18:09:20 -0500 Added signature for changeset 4a43e23b8c55 stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 18:09:20 -0500] rev 15007
Added signature for changeset 4a43e23b8c55
Mon, 01 Aug 2011 18:09:00 -0500 Added tag 1.9.1 for changeset 4a43e23b8c55 stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 18:09:00 -0500] rev 15006
Added tag 1.9.1 for changeset 4a43e23b8c55
Mon, 01 Aug 2011 23:58:50 +0200 hgweb: do not ignore [auth] if url has a username (issue2822) stable 1.9.1
Patrick Mezard <pmezard@gmail.com> [Mon, 01 Aug 2011 23:58:50 +0200] rev 15005
hgweb: do not ignore [auth] if url has a username (issue2822) The [auth] section was ignored when handling URLs like: http://user@example.com/foo Instead, we look in [auth] for an entry matching the URL and supplied user name. Entries without username can match URL with a username. Prefix length ties are resolved in favor of entries matching the username. With: foo.prefix = http://example.org foo.username = user foo.password = password bar.prefix = http://example.org/bar and the input URL: http://user@example.org/bar the 'bar' entry will be selected because of prefix length, therefore prompting for a password. This behaviour ensure that entries selection is consistent when looking for credentials or for certificates, and that certificates can be picked even if their entries do no define usernames while the URL does. Additionally, entries without a username matched against a username are returned as if they did have requested username set to avoid prompting again for a username if the password is not set. v2: reparse the URL in readauthforuri() to handle HTTP and HTTPS similarly. v3: allow unset usernames to match URL usernames to pick certificates. Resolve prefix length ties in favor of entries with usernames.
Sun, 31 Jul 2011 01:46:52 +0200 hgweb: raw file mimetype guessing configurable, off by default (BC) (issue2923) stable
Matt Mackall <mpm@selenic.com> [Sun, 31 Jul 2011 01:46:52 +0200] rev 15004
hgweb: raw file mimetype guessing configurable, off by default (BC) (issue2923) Before: hgweb made it possible to download file content with a content type detected from the file extension. It would serve .html files as text/html and could thus cause XSS vulnerabilities if the web site had any kind of session authorization and the repository content wasn't fully trusted. Now: all files default to "application/binary", which all important browsers will refuse to treat as text/html. See the table here: https://code.google.com/p/browsersec/wiki/Part2#Survey_of_content_sniffing_behaviors
Mon, 01 Aug 2011 14:53:10 -0500 hgweb: extract the path logic from updatereqenv and add doctests
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 14:53:10 -0500] rev 15003
hgweb: extract the path logic from updatereqenv and add doctests
Mon, 01 Aug 2011 14:52:11 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 14:52:11 -0500] rev 15002
merge with stable
Mon, 01 Aug 2011 09:48:10 +0200 hgweb: handle 'baseurl' configurations with leading slash (issue2934) stable
wujek [Mon, 01 Aug 2011 09:48:10 +0200] rev 15001
hgweb: handle 'baseurl' configurations with leading slash (issue2934)
Mon, 01 Aug 2011 19:53:00 +0300 ui: call write() so the prompt string goes through subclassed implementation stable
Idan Kamara <idankk86@gmail.com> [Mon, 01 Aug 2011 19:53:00 +0300] rev 15000
ui: call write() so the prompt string goes through subclassed implementation
Mon, 01 Aug 2011 10:54:34 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 10:54:34 -0500] rev 14999
merge with stable
Mon, 01 Aug 2011 10:54:10 -0500 merge with i18n stable
Matt Mackall <mpm@selenic.com> [Mon, 01 Aug 2011 10:54:10 -0500] rev 14998
merge with i18n
Sun, 31 Jul 2011 23:42:40 +0900 i18n-ja: synchronized with 4fdab926e111 stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 31 Jul 2011 23:42:40 +0900] rev 14997
i18n-ja: synchronized with 4fdab926e111
Sat, 30 Jul 2011 09:42:07 +0200 i18n-sv: synchronized with 192e02680d09 stable
Jens Bäckman <jens.backman@gmail.com> [Sat, 30 Jul 2011 09:42:07 +0200] rev 14996
i18n-sv: synchronized with 192e02680d09
Sun, 31 Jul 2011 22:12:13 +0200 parsers: remove redundant 'n' variable in parsers.parse_index2() (issue2935)
py4fun [Sun, 31 Jul 2011 22:12:13 +0200] rev 14995
parsers: remove redundant 'n' variable in parsers.parse_index2() (issue2935)
Thu, 28 Jul 2011 13:28:32 -0400 subrepo: handle adding svn subrepo with a svn:external file in it (issue2931) stable
Vasily Titskiy <qehgt0@gmail.com> [Thu, 28 Jul 2011 13:28:32 -0400] rev 14994
subrepo: handle adding svn subrepo with a svn:external file in it (issue2931)
Sat, 30 Jul 2011 23:41:10 +0300 hook: be prepared for __stdout/err__ not having fileno() stable
Idan Kamara <idankk86@gmail.com> [Sat, 30 Jul 2011 23:41:10 +0300] rev 14993
hook: be prepared for __stdout/err__ not having fileno() it may have been replaced, see https://bitbucket.org/tortoisehg/thg/issue/937
Sat, 30 Jul 2011 21:04:14 +0300 dispatch: make sure global options on the command line take precedence stable
Idan Kamara <idankk86@gmail.com> [Sat, 30 Jul 2011 21:04:14 +0300] rev 14992
dispatch: make sure global options on the command line take precedence So if a user has verbose=True somewhere in his .hgrc files, giving -q on the command line will override that. This basically reverts 1b8c70c9f47c.
Wed, 27 Jul 2011 18:35:35 -0500 http2: send an extra header to signal a non-broken client stable
Augie Fackler <durin42@gmail.com> [Wed, 27 Jul 2011 18:35:35 -0500] rev 14991
http2: send an extra header to signal a non-broken client Some proxies strip the expect header because they forward requests in a non-compliant way or as a way to defend against bogus clients.
Fri, 29 Jul 2011 12:46:45 -0500 httpclient: import ca33b88d143c from py-nonblocking-http (issue2932) stable
Augie Fackler <durin42@gmail.com> [Fri, 29 Jul 2011 12:46:45 -0500] rev 14990
httpclient: import ca33b88d143c from py-nonblocking-http (issue2932)
Fri, 29 Jul 2011 15:36:27 +0400 color.py - clear _terminfo_params in win32 mode stable
Andrei Vermel <avermel@mail.ru> [Fri, 29 Jul 2011 15:36:27 +0400] rev 14989
color.py - clear _terminfo_params in win32 mode
Sun, 31 Jul 2011 21:00:44 +0200 url: store and assume the query part of an url is in escaped form (issue2921) stable
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sun, 31 Jul 2011 21:00:44 +0200] rev 14988
url: store and assume the query part of an url is in escaped form (issue2921)
Fri, 29 Jul 2011 20:26:52 +0200 mq/qqueue: print current queue name
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Fri, 29 Jul 2011 20:26:52 +0200] rev 14987
mq/qqueue: print current queue name Add an option to qqueue to print only the name of the current queue. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat, 30 Jul 2011 11:08:45 +0100 export: add %m to file format string (first line of the commit message)
Andrzej Bieniek <andyhelp@gmail.com> [Sat, 30 Jul 2011 11:08:45 +0100] rev 14986
export: add %m to file format string (first line of the commit message) $ hg commit -m "Initial commit" $ hg export -o %m.patch tip #It creates Initial_commit.patch file.
Fri, 29 Jul 2011 00:39:27 +0200 windows: eliminate win32 wildcard import
Adrian Buehlmann <adrian@cadifra.com> [Fri, 29 Jul 2011 00:39:27 +0200] rev 14985
windows: eliminate win32 wildcard import
Fri, 29 Jul 2011 17:27:38 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 29 Jul 2011 17:27:38 -0500] rev 14984
merge with stable
Fri, 29 Jul 2011 17:27:14 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Fri, 29 Jul 2011 17:27:14 -0500] rev 14983
merge with crew
Thu, 28 Jul 2011 02:38:01 +0300 test-filecache: change for python 2.4 compatibility
Lee Cantey <lcantey@gmail.com> [Thu, 28 Jul 2011 02:38:01 +0300] rev 14982
test-filecache: change for python 2.4 compatibility
Wed, 27 Jul 2011 18:32:54 -0400 setdiscovery: return anyincoming=False when remote's only head is nullid stable
Andrew Pritchard <andrewp@fogcreek.com> [Wed, 27 Jul 2011 18:32:54 -0400] rev 14981
setdiscovery: return anyincoming=False when remote's only head is nullid This fixes (issue2907) a crash when using 'hg incoming --bundle' with an empty remote repo and a non-empty local repo. This also fixes an unreported bug that 'hg summary --remote' erroneously reports incoming changes when the remote repo is empty and the local is not. Also, add a test to make sure issue2907 stays fixed
Thu, 28 Jul 2011 14:36:07 +0900 i18n: use UTF-8 string to lower filename for case collision check stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 28 Jul 2011 14:36:07 +0900] rev 14980
i18n: use UTF-8 string to lower filename for case collision check Some character sets, cp932 (known as Shift-JIS for Japanese) for example, use 0x41('A') - 0x5A('Z') and 0x61('a') - 0x7A('z') as second or later character. In such character set, case collision checking recognizes different files as CASEFOLDED same file, if filenames are treated as byte sequence. win32mbcs extension is not appropriate to handle this problem, because this problem can occur on other than Windows platform only if problematic character set is used. Callers of util.checkcase() use known ASCII filenames as last component of path, and string.lower() is not applied to directory part of path. So, util.checkcase() is kept intact, even though it applies string.lower() to filenames.
Thu, 28 Jul 2011 14:20:06 -0500 merge with crew
Matt Mackall <mpm@selenic.com> [Thu, 28 Jul 2011 14:20:06 -0500] rev 14979
merge with crew
Mon, 25 Jul 2011 14:59:31 -0500 check-code: disallow use of hasattr()
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 14:59:31 -0500] rev 14978
check-code: disallow use of hasattr() The hasattr() builtin from Python < 3.2 [1] has slightly surprising behavior: it catches all exceptions, even KeyboardInterrupt. This causes it to have several surprising side effects, such as hiding warnings that occur during attribute load and causing mysterious failure modes when ^Cing an application. In later versions of Python 2.x [0], exception classes which do not inherit from Exception (such as SystemExit and KeyboardInterrupt) are not caught, but other types of exceptions may still silently cause returning False instead of getting a reasonable exception. [0] http://bugs.python.org/issue2196 [1] http://docs.python.org/dev/whatsnew/3.2.html
Mon, 25 Jul 2011 21:15:48 -0500 demandimport: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 21:15:48 -0500] rev 14977
demandimport: use getattr instead of hasattr We don't use util.safehasattr() here to avoid adding new dependencies for demandimport. This change may expose previously-silenced deprecation warnings to appear, as hasattr silently hides warnings that occur during module import when using demandimport.
Tue, 01 Mar 2011 23:35:22 -0600 demandimport: blacklist rfc822 and mimetools to prevent spurious warnings
Augie Fackler <durin42@gmail.com> [Tue, 01 Mar 2011 23:35:22 -0600] rev 14976
demandimport: blacklist rfc822 and mimetools to prevent spurious warnings
Mon, 25 Jul 2011 20:46:30 -0500 i18n: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 20:46:30 -0500] rev 14975
i18n: use getattr instead of hasattr Using getattr instead of util.safehasattr here to avoid adding another dependency for i18n.
Mon, 25 Jul 2011 16:09:18 -0500 win32/hgwebdir_wsgi: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:09:18 -0500] rev 14974
win32/hgwebdir_wsgi: use getattr instead of hasattr
Mon, 25 Jul 2011 16:08:57 -0500 setup.py: use getattr instead of hasdattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:08:57 -0500] rev 14973
setup.py: use getattr instead of hasdattr
Mon, 25 Jul 2011 16:07:52 -0500 setup3k: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:07:52 -0500] rev 14972
setup3k: use getattr instead of hasattr Note that hasattr is fixed on Python 3, so this is more about being concise and keeping check-code happy than actual correctness of code.
Mon, 25 Jul 2011 16:37:18 -0500 tests: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:37:18 -0500] rev 14971
tests: use getattr instead of hasattr
Mon, 25 Jul 2011 16:05:01 -0500 wireproto: use safehasattr or getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:05:01 -0500] rev 14970
wireproto: use safehasattr or getattr instead of hasattr
Mon, 25 Jul 2011 16:04:44 -0500 windows: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:04:44 -0500] rev 14969
windows: use getattr instead of hasattr
Mon, 25 Jul 2011 16:04:40 -0500 util: use safehasattr or getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:04:40 -0500] rev 14968
util: use safehasattr or getattr instead of hasattr
Mon, 25 Jul 2011 16:02:42 -0500 templatefilters: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:02:42 -0500] rev 14967
templatefilters: use safehasattr instead of hasattr
Mon, 25 Jul 2011 16:02:27 -0500 patch: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:02:27 -0500] rev 14966
patch: use safehasattr instead of hasattr
Mon, 25 Jul 2011 16:02:15 -0500 mail: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:02:15 -0500] rev 14965
mail: use safehasattr instead of hasattr
Mon, 25 Jul 2011 15:55:51 -0500 url: replace uses of hasattr with safehasattr or getattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:55:51 -0500] rev 14964
url: replace uses of hasattr with safehasattr or getattr
Mon, 25 Jul 2011 15:53:22 -0500 subrepo: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:53:22 -0500] rev 14963
subrepo: use safehasattr instead of hasattr Some of these instances could be rewritten as clever getattr(x, y, default) ladders, but that felt like it impeded readability too much to be worth the modest efficiency gain.
Mon, 25 Jul 2011 15:47:43 -0500 statichttprepo: replace hasattr with getattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:47:43 -0500] rev 14962
statichttprepo: replace hasattr with getattr
Mon, 25 Jul 2011 15:45:11 -0500 walkrepos: use getattr instead of hasattr for samestat
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:45:11 -0500] rev 14961
walkrepos: use getattr instead of hasattr for samestat
Mon, 25 Jul 2011 15:43:55 -0500 revlog: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:43:55 -0500] rev 14960
revlog: use getattr instead of hasattr
Mon, 25 Jul 2011 15:41:46 -0500 lsprof: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:41:46 -0500] rev 14959
lsprof: use getattr instead of hasattr
Mon, 25 Jul 2011 20:36:59 -0500 keepalive: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 20:36:59 -0500] rev 14958
keepalive: use safehasattr instead of hasattr
Mon, 25 Jul 2011 15:38:46 -0500 hgweb: move remaining hasattr calls to safehasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:38:46 -0500] rev 14957
hgweb: move remaining hasattr calls to safehasattr
Mon, 25 Jul 2011 15:38:10 -0500 wsgicgi: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:38:10 -0500] rev 14956
wsgicgi: use getattr instead of hasattr
Mon, 25 Jul 2011 15:37:52 -0500 httprepo: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:37:52 -0500] rev 14955
httprepo: use getattr instead of hasattr
Mon, 25 Jul 2011 15:36:13 -0500 help command: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:36:13 -0500] rev 14954
help command: use safehasattr instead of hasattr
Mon, 25 Jul 2011 16:27:08 -0500 hgweb_mod: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:27:08 -0500] rev 14953
hgweb_mod: use safehasattr instead of hasattr
Mon, 25 Jul 2011 15:22:18 -0500 hg: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:22:18 -0500] rev 14952
hg: use safehasattr instead of hasattr
Mon, 25 Jul 2011 15:19:43 -0500 encoding: use getattr isntead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:19:43 -0500] rev 14951
encoding: use getattr isntead of hasattr
Mon, 25 Jul 2011 15:17:47 -0500 dispatch: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:17:47 -0500] rev 14950
dispatch: use safehasattr instead of hasattr
Mon, 25 Jul 2011 16:36:56 -0500 debugignore: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:36:56 -0500] rev 14949
debugignore: use getattr instead of hasattr
Mon, 25 Jul 2011 15:32:42 -0500 cmdutil: use safehasattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:32:42 -0500] rev 14948
cmdutil: use safehasattr instead of hasattr
Mon, 25 Jul 2011 15:09:17 -0500 byterange: replace uses of hasattr with getattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:09:17 -0500] rev 14947
byterange: replace uses of hasattr with getattr
Mon, 25 Jul 2011 15:07:09 -0500 bookmarks: use getattr instead of hasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:07:09 -0500] rev 14946
bookmarks: use getattr instead of hasattr
Mon, 25 Jul 2011 20:37:12 -0500 hgext: replace uses of hasattr with util.safehasattr
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 20:37:12 -0500] rev 14945
hgext: replace uses of hasattr with util.safehasattr
Mon, 25 Jul 2011 15:30:19 -0500 globally: use safehasattr(x, '__iter__') instead of hasattr(x, '__iter__')
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 15:30:19 -0500] rev 14944
globally: use safehasattr(x, '__iter__') instead of hasattr(x, '__iter__')
Mon, 25 Jul 2011 16:24:37 -0500 globally: use safehasattr(x, '__call__') instead of hasattr(x, '__call__')
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:24:37 -0500] rev 14943
globally: use safehasattr(x, '__call__') instead of hasattr(x, '__call__')
Mon, 25 Jul 2011 14:59:55 -0500 safehasattr: new function to work around hasattr being broken
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 14:59:55 -0500] rev 14942
safehasattr: new function to work around hasattr being broken
Mon, 25 Jul 2011 16:14:02 -0500 windows: check util.mainfrozen() instead of ad-hoc checks everywhere
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:14:02 -0500] rev 14941
windows: check util.mainfrozen() instead of ad-hoc checks everywhere
Tue, 26 Jul 2011 21:30:12 +0200 notify: rewrite user documentation
Patrick Mezard <pmezard@gmail.com> [Tue, 26 Jul 2011 21:30:12 +0200] rev 14940
notify: rewrite user documentation The main intent is to turn the reference help into a configuration walkthrough. It also fix several things: - Do not suggest to use it for commit notifications, it cannot work - Fix notify.strip default value - Mention that subscriptions can be setup in Mercurial configuration files - Improve notify.strip and notify.domain documentation
Mon, 25 Jul 2011 22:19:28 +0300 cmdserver: repo.invalidate() on every runcommand
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 22:19:28 +0300] rev 14939
cmdserver: repo.invalidate() on every runcommand This will trigger the filecache and recreate every cached property that was changed by something other than this cmdserver instance (e.g. by running 'hg commit' at the cmdline).
Mon, 25 Jul 2011 08:28:37 +0200 help: add "web/logoimg" setting description
Angel Ezquerra <angel.ezquerra@gmail.com> [Mon, 25 Jul 2011 08:28:37 +0200] rev 14938
help: add "web/logoimg" setting description
Mon, 25 Jul 2011 12:58:47 -0500 filecache: fix check-code complaint
Matt Mackall <mpm@selenic.com> [Mon, 25 Jul 2011 12:58:47 -0500] rev 14937
filecache: fix check-code complaint
Mon, 25 Jul 2011 15:08:57 +0300 localrepo: unify tag related info into a tagscache class
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:57 +0300] rev 14936
localrepo: unify tag related info into a tagscache class
Mon, 25 Jul 2011 15:08:37 +0300 localrepo: make invalidate() walk _filecache
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14935
localrepo: make invalidate() walk _filecache
Mon, 25 Jul 2011 15:08:37 +0300 localrepo: decorate manifest() with filecache
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14934
localrepo: decorate manifest() with filecache
Mon, 25 Jul 2011 15:08:37 +0300 localrepo: decorate _bookmarks/current 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
Mon, 25 Jul 2011 15:08:37 +0300 localrepo: decorate changelog() with filecache
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14932
localrepo: decorate changelog() with filecache
Mon, 25 Jul 2011 15:08:37 +0300 localrepo: refresh filecache entries after releasing a repo.lock()
Idan Kamara <idankk86@gmail.com> [Mon, 25 Jul 2011 15:08:37 +0300] rev 14931
localrepo: refresh filecache entries after releasing a repo.lock()
Mon, 25 Jul 2011 15:08:37 +0300 localrepo: decorate dirstate() with filecache
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.
Mon, 25 Jul 2011 15:08:37 +0300 localrepo: add a cache with stat info for files under .hg/
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/
Sat, 09 Jul 2011 19:06:59 +0300 scmutil: introduce filecache
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.
Mon, 25 Jul 2011 15:03:02 +0300 posix, windows: introduce cachestat
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
Sat, 23 Jul 2011 12:29:52 +0200 util: eliminate wildcard imports
Adrian Buehlmann <adrian@cadifra.com> [Sat, 23 Jul 2011 12:29:52 +0200] rev 14926
util: eliminate wildcard imports
Sat, 23 Jul 2011 14:33:35 -0500 templater: use a global funcs table
Matt Mackall <mpm@selenic.com> [Sat, 23 Jul 2011 14:33:35 -0500] rev 14925
templater: use a global funcs table
Sat, 23 Jul 2011 06:09:14 +0200 ui: config path relative to repo root
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Jul 2011 06:09:14 +0200] rev 14924
ui: config path relative to repo root
Sat, 23 Jul 2011 06:08:52 +0200 ui: providing no default value to configpath should not raise an Error
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
Sat, 23 Jul 2011 06:08:49 +0200 ui: fix error, base can not be a list
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Jul 2011 06:08:49 +0200] rev 14922
ui: fix error, base can not be a list
Sat, 23 Jul 2011 11:52:25 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 23 Jul 2011 11:52:25 -0500] rev 14921
merge with stable
Fri, 22 Jul 2011 20:31:15 -0300 test-i18n, i18n-pt_BR: updated test message changed in 41c3a71c318d 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
Fri, 22 Jul 2011 20:27:40 -0300 i18n-pt_BR: synchronized with a934b9249574 stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 22 Jul 2011 20:27:40 -0300] rev 14919
i18n-pt_BR: synchronized with a934b9249574
Fri, 22 Jul 2011 17:17:23 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 22 Jul 2011 17:17:23 -0500] rev 14918
merge with stable
Thu, 21 Jul 2011 15:56:15 -0500 rebase: remove trailing whitespace found by check-code stable
Augie Fackler <durin42@gmail.com> [Thu, 21 Jul 2011 15:56:15 -0500] rev 14917
rebase: remove trailing whitespace found by check-code
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 +30000 tip