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
timeless <timeless@gmail.com> [Sun, 21 Nov 2010 05:07:06 -0600] rev 13023
record: quote command in use hg commit message
timeless <timeless@gmail.com> [Sat, 20 Nov 2010 20:41:48 +0200] rev 13022
revert: improve merge advice and favor its error over all
Henrik Stuart <hg@hstuart.dk> [Sat, 20 Nov 2010 09:51:56 +0100] rev 13021
rebase: support --detach when null is common ancestor
Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 18 Nov 2010 19:52:58 -0200] rev 13020
templater: fix variable name
'format' was renamed to 'parsed' in 0d50586a9d31
Adrian Buehlmann <adrian@cadifra.com> [Wed, 17 Nov 2010 16:54:30 +0100] rev 13019
test-hardlinks: add testcase for repo copied with 'cp -al'
This patch adds a case to test-hardlinks.t which demonstrates that
hardlinks in the working directory are broken up (using 'hg update').
Motivation for this patch:
'hg help clone' shows copying repositories *and* the working directory
using 'cp -al', creating hardlinks in the *working directory* too (not
just in the store).
Note that we can't use 'cp -al' since for example MacOS X doesn't
support these options on cp. I'm thus using the same trick as in
test-hardlinks-safety.t for creating hardlinks in the working dir.
Patrick Mezard <pmezard@gmail.com> [Thu, 18 Nov 2010 23:15:13 +0100] rev 13018
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Thu, 18 Nov 2010 23:05:10 +0100] rev 13017
subrepo: handle missing subrepo spec file as removed
Otherwise, all commands involving a dirstate walk will abort when trying to
readone of them. Deleting .hgsub basically breaks a repository.
Patrick Mezard <pmezard@gmail.com> [Wed, 17 Nov 2010 21:30:13 +0100] rev 13016
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Wed, 17 Nov 2010 21:25:23 +0100] rev 13015
subrepo: prune empty directories when removing svn subrepo
Patrick Mezard <pmezard@gmail.com> [Wed, 17 Nov 2010 21:24:36 +0100] rev 13014
subrepo: use subprocess directly to avoid python 2.6 bug
Using svn subrepos on MacOSX with native python 2.6.1 results in a lot of
unexpected output caused by:
http://bugs.python.org/issue5099
subprocess.Popen.__del__ causes AttributeError (os module == None)
Avoiding dangling Popen instance solves the issue.
Patrick Mezard <pmezard@gmail.com> [Wed, 17 Nov 2010 21:00:47 +0100] rev 13013
subrepo: fix removing read-only svn files on Windows
Martin Geisler <mg@aragost.com> [Wed, 17 Nov 2010 09:37:57 +0100] rev 13012
check-code: catch 'ls filename --option' case as per 6bdae8ea0b48
Erik Zielke <ez@aragost.com> [Tue, 02 Nov 2010 17:44:19 +0100] rev 13011
minirst: improved support for option lists.
This enables minirst to parse and print option lists which have both
long and short options. Before, we could only parse option lists with
long options.
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Tue, 16 Nov 2010 13:29:35 +0100] rev 13010
test-subrepo-git.t: portability fix.
Specifying arguments after file names for 'ls' is a GNU extension.
Erik Zielke <ez@aragost.com> [Tue, 16 Nov 2010 13:29:08 +0100] rev 13009
minirst: modified minirst to also recognize empty comments.
The modifies minirst to also handle empty comments. An empty comment
is a block with a single line containing two dots.
Martin Geisler <mg@aragost.com> [Wed, 17 Nov 2010 09:17:55 +0100] rev 13008
merge with stable