Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:22:45 +0100] rev 15574
largefiles: simplify lfutil.writehash
This was unnecessarily verbose: there is no need to unlink the file
when we open it for write anyway, and there is no need to check if the
file exists after we created it.
Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:22:44 +0100] rev 15573
merge with stable
Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:13:18 +0100] rev 15572
largefiles: copy files into .hg/largefiles atomically
Copying from the user cache into .hg/largefiles could fail halfway
though with a partially written file.
Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:12:13 +0100] rev 15571
largefiles: write .hg/largefiles/ files atomically
Before, it was possible to create a
.hg/largefiles/hash
file with truncated content, i.e., content where
SHA-1(content) != hash
This breaks the fundamental invariant in largefiles that the file
content for files in .hg/largefiles hash to the filename.
Martin Geisler <mg@aragost.com> [Thu, 24 Nov 2011 18:11:43 +0100] rev 15570
largefiles: add comment about non-atomic working directory
When updating the working copy with a normal 'hg update', we also
don't use atomic writes.
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 01:49:20 +0100] rev 15569
tests: use an alias to make msys 'pwd' return paths with forward slashes
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 01:49:20 +0100] rev 15568
tests: skip cvs tests with msys on windows
They will fail with weird 'ssh' errors.
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 01:49:20 +0100] rev 15567
tests: introduce 'hghave msys' to skip tests that would fail because of msys
Matt Mackall <mpm@selenic.com> [Wed, 23 Nov 2011 16:35:17 -0600] rev 15566
merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 23 Nov 2011 16:25:44 -0600] rev 15565
convert: handle trailing slashes in filemap better (
issue3124)
Matt Mackall <mpm@selenic.com> [Wed, 23 Nov 2011 14:24:56 -0800] rev 15564
tests: remove test-casecollision-i18n.t
The result of this test is quite suspect. Remove it for now as it now
correctly breaks on HFS+.
Matt Mackall <mpm@selenic.com> [Wed, 23 Nov 2011 14:22:37 -0800] rev 15563
posix: fix HFS+ percent-encoding folding
We use 'ignore' rather than 'replace' so we don't have to deal with
u+FFFD in UTF-8 round-trip.
Mads Kiilerich <mads@kiilerich.com> [Wed, 23 Nov 2011 02:44:11 +0100] rev 15562
mail: use quoted-printable for mime encoding to avoid too long lines (
issue3075)
Quoted-printable was already used for the more critical patch mails, so it
should be fine for everything else as well.
Mads Kiilerich <mads@kiilerich.com> [Wed, 23 Nov 2011 02:36:33 +0100] rev 15561
notify: add option for writing to mbox
This makes it possible to test how the mails that are sent _really_ look like.
Mads Kiilerich <mads@kiilerich.com> [Wed, 23 Nov 2011 02:11:24 +0100] rev 15560
mail: mbox handling as a part of mail handling, refactored from patchbomb
Mads Kiilerich <mads@kiilerich.com> [Wed, 23 Nov 2011 02:09:38 +0100] rev 15559
patchbomb: minor refactoring of mbox functionality, preparing for move
This allows reuse of the mbox functionality but causes minor changes in the
patchbomb console output when writing to a mbox.
Mads Kiilerich <mads@kiilerich.com> [Wed, 23 Nov 2011 03:14:24 +0100] rev 15558
tests: run check-code with warnings and maintain a whitelist
check-code has fine warning checks, but they are a bit noisy and nobody used
them.
Now the warnings will be run in the test suite, where a list of accepted
warnings will be maintained.
Those who introduce or touch a line with a warning will now have to update the
whitelist ... or fix the warning.
Mads Kiilerich <mads@kiilerich.com> [Wed, 23 Nov 2011 02:50:58 +0100] rev 15557
tests: convert test-check-code-hg.py to .t
Christian Ebert <blacktrash@gmx.net> [Wed, 23 Nov 2011 01:20:32 +0000] rev 15556
test-keyword: use inline doctest syntax
Matt Mackall <mpm@selenic.com> [Tue, 22 Nov 2011 17:34:22 -0600] rev 15555
merge with stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 22 Nov 2011 19:56:26 +0100] rev 15554
tests: test-largefiles.t should not try to escape from $TESTTMP
Mads Kiilerich <mads@kiilerich.com> [Tue, 22 Nov 2011 19:52:23 +0100] rev 15553
largefiles: file storage should be relative to repo, not relative to cwd
Revealed by the test in
1fd126cd2d91.
Augie Fackler <durin42@gmail.com> [Tue, 22 Nov 2011 12:06:42 -0600] rev 15552
clone: don't save user's password in .hg/hgrc (Issue3122)
Matt Mackall <mpm@selenic.com> [Tue, 22 Nov 2011 17:26:32 -0600] rev 15551
posix: add extended support for OS X path folding
OS X does the following transformation on paths for comparisons:
a) 8-bit strings are decoded as UTF-8 to UTF-16
b) undecodable bytes are percent-escaped
c) accented characters are converted to NFD decomposed form, approximately
d) characters are converted to _lowercase_ using internal tables
Both (c) and (d) are done using internal tables that vary from release
to release and match Unicode specs to greater or lesser extent. We
approximate these functions using Python's internal Unicode data.
With this change, Mercurial will (in almost all cases) match OS X
folding and not report unknown file aliases for files in UTF-8 or
other encodings.
Matt Mackall <mpm@selenic.com> [Tue, 22 Nov 2011 17:26:31 -0600] rev 15550
dirstate: use util.normcase to build foldmap
Martin Geisler <mg@lazybytes.net> [Tue, 22 Nov 2011 18:16:59 +0100] rev 15549
merge with stable
Martin Geisler <mg@lazybytes.net> [Tue, 22 Nov 2011 17:51:43 +0100] rev 15548
largefiles: fix 'hg clone . ../foo' OSError abort
Operating on a non-existant file can cause both IOError and OSError,
depending on the function used: open raises IOError, os.lstat raises
OSError.
The largefiles code called dirstate.normal, which in turn calls
os.lstat, so OSError is the right exception to catch here.
Mads Kiilerich <mads@kiilerich.com> [Tue, 22 Nov 2011 01:37:26 +0100] rev 15547
tests: test-patchbomb.t cleanup
Let commit messages and file names describe the facts without making incorrect
guess of the actual handling of it.
Mads Kiilerich <mads@kiilerich.com> [Tue, 22 Nov 2011 01:37:26 +0100] rev 15546
tests: show actual output in test-patchbomb.t
Drop fixheader and decode base64 encoded content and show non-ascii content.
Mads Kiilerich <mads@kiilerich.com> [Tue, 22 Nov 2011 01:37:26 +0100] rev 15545
tests: test findexe() access check fixed in
58f96703a9ab
Mads Kiilerich <mads@kiilerich.com> [Tue, 22 Nov 2011 01:37:26 +0100] rev 15544
check-code: fix return code initialization
Don't crash when nothing is tested, but return failure when other files than
the last one fails.
Matt Mackall <mpm@selenic.com> [Mon, 21 Nov 2011 13:11:17 -0600] rev 15543
merge with stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 00:39:32 +0100] rev 15542
tests: make test-commandserver.py independent of line ending and slash direction
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 00:39:32 +0100] rev 15541
tests: make test-commandserver.py output readable
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 00:39:32 +0100] rev 15540
tests: 'hghave unix-permissions' for test-import.t
'hg import' of a patch with mode changes requires unix permissions support in
the file system.
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 00:39:32 +0100] rev 15539
tests: skip color test on platforms without tic
Mads Kiilerich <mads@kiilerich.com> [Sun, 20 Nov 2011 23:09:32 +0100] rev 15538
update: don't clobber untracked files with wrong casing
Matt Mackall <mpm@selenic.com> [Sun, 20 Nov 2011 16:07:07 -0600] rev 15537
merge with i18n
Matt Mackall <mpm@selenic.com> [Sun, 20 Nov 2011 16:06:51 -0600] rev 15536
merge with i18n
Wagner Bruna <wbruna@softwareexpress.com.br> [Fri, 18 Nov 2011 10:21:56 -0200] rev 15535
i18n-pt_BR: synchronized with
00276525e2b7
Matt Mackall <mpm@selenic.com> [Sun, 20 Nov 2011 16:06:18 -0600] rev 15534
merge with stable
Mads Kiilerich <mads@kiilerich.com> [Fri, 18 Nov 2011 01:32:28 +0100] rev 15533
help: Backed out changeset
e99facd2cd2a, description of file urls
This help entry didn't try to describe the 'localhost' notation. It described a
non-standard host-less notation where 'local' just was the first part of a
sample relative path. It describe "urls" with relative and absolute paths like:
file://file.txt
file:///tmp/file.txt
file://c:/tmp/file.txt
Matt Mackall <mpm@selenic.com> [Sun, 20 Nov 2011 15:29:55 -0600] rev 15532
revset: follow(nosuchfile) should give an empty set (
issue3114)
Eric Roshan Eisner <ede@alum.mit.edu> [Fri, 11 Nov 2011 11:11:11 +1111] rev 15531
subrepo: fix git status false positive (
issue3109)
It turns out there's a separate command to force git to look at file contents
if the stat has changed.
Patrick Mezard <pmezard@gmail.com> [Fri, 18 Nov 2011 14:23:03 +0100] rev 15530
mdiff: replace wscleanup() regexps with C loops
On my system it reduces:
hg annotate -w mercurial/commands.py
from 36s to less than 8s, to be compared with 6.3s when run without whitespace
options.
Patrick Mezard <pmezard@gmail.com> [Fri, 18 Nov 2011 14:16:47 +0100] rev 15529
mdiff: split lines in allblocks() only when necessary
These are only required to handle the --ignore-blank-lines case
Patrick Mezard <pmezard@gmail.com> [Fri, 18 Nov 2011 12:04:31 +0100] rev 15528
annotate: support diff whitespace filtering flags (
issue3030)
splitblock() was added to handle blocks returned by bdiff.blocks() which differ
only by blank lines but are not made only of blank lines. I do not know exactly
how it could happen but mdiff.blocks() threshold behaviour makes me think it
can if those blocks are made of very popular lines mixed with popular blank
lines. If it is proven to be wrong, the function can be dropped.
The first implementation made annotate share diff configuration entries. But it
looks like users will user -w/b for annotate but not for diff, on both the
command line and hgweb. Since the latter cannot use command line entries, we
introduce a new [annotate] section duplicating the diff whitespace options.
Pascal Quantin <pascal.quantin@gmail.com> [Sun, 20 Nov 2011 19:14:36 +0100] rev 15527
setup: fix py2exe generation broken by
c3a6ec304055 (
issue3116)
Py2exe is patching default distutils Distribution class. This patch ensures
that the right one is taken when calling hgdist class.
Patrick Mezard <pmezard@gmail.com> [Fri, 18 Nov 2011 12:01:04 +0100] rev 15526
mdiff: make diffblocks() return all blocks, matching and changed
Annotate uses matching blocks not changed ones.
Patrick Mezard <pmezard@gmail.com> [Fri, 18 Nov 2011 11:53:38 +0100] rev 15525
mdiff: extract blocks whitespace normalization in diffblocks()
We want to reuse it in annotate for whitespace normalization.
Matt Mackall <mpm@selenic.com> [Thu, 17 Nov 2011 23:02:18 -0600] rev 15524
merge with crew
Matt Mackall <mpm@selenic.com> [Thu, 17 Nov 2011 23:01:58 -0600] rev 15523
setup: backout
8504699d1aa6
Change wasn't compatible with Python 2.x
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 15522
tests: don't use stdout redirection for test data
Stdout redirection is not binary safe everywhere - for example not on windows
with msys.
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 15521
tests: hide 'No such file or directory' messages
Windows will use a different and localized message.
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 15520
tests: add missing '(glob)'s to match '\' in paths in test output on windows
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 15519
tests: add 'hghave system-sh' to skip tests on windows
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 15518
tests: launch hghave with python interpreter without relying on hash-bang
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 15517
tests: use the specified shell for running old fashioned sh tests
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 15516
tests: add missing 'hghave unix-permissions'
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 15515
tests: remove hacks for testing if file or directory exists
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:06 +0100] rev 15514
tests: don't leave temporary directories without write permission behind
Matt Mackall <mpm@selenic.com> [Thu, 17 Nov 2011 16:53:17 -0600] rev 15513
merge with stable
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> [Wed, 16 Nov 2011 08:34:36 +0100] rev 15512
hook: flush stdout before redirecting to stderr
When hook output redirection is enabled (e.g. when cloning over ssh), hook
output on stdout is redirected to stderr, to prevent the repository data on
stdout from being corrupted.
In certain cases, the redirection could cause part of the repository data to
end up on stderr as well. In case of a clone, this causes:
"abort: consistency error in delta!"
This was seen with a clone over ssh, an outgoing hook present (any
non-python type, e.g. 'pwd'), on certain repositories only,
probably depending on the distribution of the sent data)
This patch updates the hook redirection code to flush stdout before
redirecting, removing the problem.
Patrick Mezard <pmezard@gmail.com> [Wed, 16 Nov 2011 12:53:10 +0100] rev 15511
import: fix parent selection when importing merges
With "wp1" and "wp2" the current working directory parents, "p1" and "p2" the
patch parents and "parents" the resulting commit parents, the current behaviour
is:
--bypass --exact p2 parents
0 0 0 [wp1, wp2]
0 0 1 [wp1, wp2]/buggy
0 1 0 [p1]
0 1 1 [p1, p2]
1 0 0 [wp1, wp2]
1 0 1 [p1, p2]
1 1 0 [p1]
1 1 1 [p1, p2]
The original behaviour before
f53dc0787424 was:
--bypass --exact p2 parents
0 0 0 [wp1, wp2]
0 0 1 if p1 == wp1 then [p1, p2] otherwise [wp1, wp2]
0 1 0 [p1]
0 1 1 [p1, p2]
This patch restores the previous behaviour when --bypass is not set, and align
--bypass behaviour when --exact is not set with merge diffs.