Nicolas Dumazet <nicdumz.commits@gmail.com> [Wed, 01 Dec 2010 11:02:12 +0900] rev 13055
merge with stable
Nicolas Dumazet <nicdumz.commits@gmail.com> [Wed, 01 Dec 2010 09:46:11 +0900] rev 13054
runrst: add RSTARGS Makefile variable to allow customization
In particular, we can ask users to run
make RSTARGS='--traceback' doc
when we need debugging information
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 30 Nov 2010 17:48:12 +0900] rev 13053
util: do not recurse in makedirs if name is '' (
issue2528)
Patrick Mezard <pmezard@gmail.com> [Mon, 29 Nov 2010 20:13:11 +0100] rev 13052
convert/svn: fix changed files list upon directory replacements
When branch2/dir was replacing branch1/dir, we only marked branch2/dir files a
changed. Add branch1/dir files as they may not exist in branch2.
Martin Geisler <mg@aragost.com> [Mon, 29 Nov 2010 10:13:55 +0100] rev 13051
encoding: fix typo in variable name
The typo had no real effect, except for an unnecessary UTF-8 encoding.
Matt Mackall <mpm@selenic.com> [Sun, 28 Nov 2010 18:21:47 -0600] rev 13050
pushkey: use UTF-8
Matt Mackall <mpm@selenic.com> [Wed, 24 Nov 2010 16:10:37 -0600] rev 13049
wireproto: use proper UTF-8 handling for key lookup
Lookups happen in the local encoding space, but the wire protocol
should be using UTF-8 for interoperability.
Matt Mackall <mpm@selenic.com> [Wed, 24 Nov 2010 16:04:33 -0600] rev 13048
bookmarks: use UTF-8 storage
This uses tolocal/fromlocal to translate bookmark metadata to UTF-8
for storage. Existing bookmarks in ASCII, UTF-8 or Latin1 will
continue to work, others may need to set HGENCODINGFALLBACK to
transition.
Matt Mackall <mpm@selenic.com> [Wed, 24 Nov 2010 15:56:32 -0600] rev 13047
branch: operate on branch names in local string space where possible
Previously, branch names were ideally manipulated as UTF-8 strings,
because they were stored as UTF-8 in the dirstate and the changelog
and could not be safely converted to the local encoding and back.
However, only about 80% of branch name code was actually using the
right encoding conventions. This patch uses the localstr addition to
allow working on branch names as local strings, which simplifies
handling so that the previously incorrect code becomes correct.
Matt Mackall <mpm@selenic.com> [Wed, 24 Nov 2010 15:38:52 -0600] rev 13046
encoding: add localstr class to track UTF-8 version of transcoded strings
This allows UTF-8 strings to losslessly round-trip through Mercurial
Steve Borho <steve@borho.org> [Fri, 26 Nov 2010 20:08:03 -0600] rev 13045
Merge with stable
Steve Borho <steve@borho.org> [Fri, 26 Nov 2010 20:05:16 -0600] rev 13044
wix: allow x86 MSI packages to be installed on x64 systems
Steve Borho <steve@borho.org> [Fri, 26 Nov 2010 18:04:10 -0600] rev 13043
Merge with stable
Steve Borho <steve@borho.org> [Fri, 26 Nov 2010 17:40:13 -0600] rev 13042
wix: add support for x64 native MSI packages
Steve Borho <steve@borho.org> [Fri, 26 Nov 2010 16:18:19 -0600] rev 13041
wix: switch Mercurial Windows installer to use py2exe --bundle 3
--bundle 3 leaves all of the compiled C extensions and other DLLs outside of
the library.zip, so we no longer add the installer folder to the system PATH.
Instead, we now ship a small bin/hg.cmd and it is placed in the PATH.
Switching to py2exe --bundle 3 is necessary because the higher bundle options
are not supported on x64.
Steve Borho <steve@borho.org> [Wed, 24 Nov 2010 13:43:40 -0600] rev 13040
Merge with stable
Adrian Buehlmann <adrian@cadifra.com> [Tue, 23 Nov 2010 13:11:40 +0100] rev 13039
util.datestr: do not crash on revisions with negative timestamp (
issue2513)
Python's time.gmtime(lt) fails on Windows, producing a traceback with
ValueError: (22, 'Invalid argument')
if lt < -43200.
We get a local time boundary value of -43200 if we take "the epoch"
Thu Jan 01 00:00:00 1970 = time.gmtime(0)
from timezone 'UTC+0' into timezone 'UTC-12'. All other timezones will have
larger local time values for that point in time.
Aborting with a traceback on 'hg log' for revisions with a timestamp value
< -43200 is clearly not acceptable.
Returning "invalid timestamp" or similar as string representation is not an
option either, since that may crash other tools which parse the output of
'hg log'.
Instead, we teach util.datestr() to return the epoch in timezone UTC+0 on
*all platforms*, represented by the string
Thu Jan 01 00:00:00 1970 +0000
if the timestamp's unix time value is negative.
(based on a patch originally proposed by Benjamin Pollack)
Adrian Buehlmann <adrian@cadifra.com> [Tue, 23 Nov 2010 22:53:47 +0100] rev 13038
checknlink: return False if .hgtmp file preexists (
issue2517)
If os_link fails on Windows, errno is always errno.EINVAL,
so we can't really say if the testlink could not be created
because (a) the FS doesn't support hardlinks or (b) there
is a leaked .hgtmp file lying around from a previous crashed
run.
So let's err on the safe side, keep the code simple and assume
we can't detect hardlinks in both cases.
Martin Geisler <mg@aragost.com> [Wed, 24 Nov 2010 13:25:12 +0100] rev 13037
localrepo: move string formatting out of gettext call
Matt Mackall <mpm@selenic.com> [Mon, 22 Nov 2010 13:11:46 -0600] rev 13036
merge with stable
Kevin Bullock <kbullock@ringworld.org> [Tue, 16 Nov 2010 13:06:07 -0600] rev 13035
mq: ignore subrepos (
issue2499)
If MQ allows modifying .hgsub or .hgsubstate in a patch, it can easily
lead to an inconsistent subrepo state. This patch prevents qrefresh from
adding any modifications to .hgsub or .hgsubstate to a patch. The user
is warned that these files are not included in the patch.
The tests test both the slightly irrational and the pathological cases.
Adrian Buehlmann <adrian@cadifra.com> [Mon, 22 Nov 2010 17:32:51 +0100] rev 13034
tests: integrate test-hardlinks-safety.t into test-hardlinks.t
Should make running the testsuite a bit faster.
Also, test-hardlinks.t and test-hardlinks-safety.t now have enough
infrastructure in common.
Steve Losh <steve@stevelosh.com> [Wed, 17 Nov 2010 21:18:44 -0500] rev 13033
mq: add an '-e/--exact' option to qpush
This patch adds an '--exact/-e' option to qpush that will try to push the
patches in the correct location in the DAG. Specifying this option does the
following:
* If --move is specified, abort. It makes no sense to move a patch to the front
of the queue and try to apply it to its parent, because its parent is one of
the patches we just moved it in front of!
* If patches are already applied, abort. We don't want patch changesets
scattered throughout the DAG.
* If local changes are present, abort unless --force is used, as usual.
* Find the first patch we're going to push (if we're pushing multiple patches
with a target or --all).
* If that patch doesn't have a parent, abort, obviously.
* If the parent doesn't exist in the repo, abort. Something is wrong.
* Update to the parent, then continue pushing the patches as normal.
Matt Mackall <mpm@selenic.com> [Mon, 22 Nov 2010 12:43:31 -0600] rev 13032
dirstate: warn on invalid parents rather than aborting
This allows more graceful recovery from some mangled dirstates
Martin Geisler <mg@aragost.com> [Mon, 22 Nov 2010 18:15:58 +0100] rev 13031
code style: prefer 'is' and 'is not' tests with singletons
Martin Geisler <mg@aragost.com> [Mon, 22 Nov 2010 17:57:11 +0100] rev 13030
polib: remove unnecessary comparisons with True
Submitted to upstream repository as changeset
f11e0b1b37b0.
Eric Eisner <ede@mit.edu> [Sun, 21 Nov 2010 22:00:51 -0500] rev 13029
subrepo: lazier git push logic
Avoids calls to git push when the revision is already known to be
in the remote repository. Now, when using a read-only git subrepo,
git will never need to talk to its upstream repository.
Martin Geisler <mg@aragost.com> [Mon, 22 Nov 2010 17:39:46 +0100] rev 13028
merge with stable
Eric Eisner <ede@mit.edu> [Thu, 18 Nov 2010 19:20:21 -0500] rev 13027
subrepo: archive git subrepos
Adrian Buehlmann <adrian@cadifra.com> [Sun, 21 Nov 2010 11:52:27 +0100] rev 13026
check-code: catch Python 'is' comparing number or string literals
The Python 'is' operator compares object identity, so it should
definitely not be applied to string or number literals, which Python
implementations are free to represent with a temporary object.
This should catch the following kinds of bogus expressions (examples):
x is 'foo' x is not 'foo'
x is "bar" x is not "bar"
x is 42 x is not 42
x is -36 x is not -36
As originally proposed by Martin Geisler, amended with catching
negative numbers.
Christian Ebert <blacktrash@gmx.net> [Mon, 22 Nov 2010 16:05:31 +0100] rev 13025
keyword: s/config/configuration/ in help
Patrick Mezard <pmezard@gmail.com> [Sun, 21 Nov 2010 13:16:59 +0100] rev 13024
Merge with stable