Sun, 08 Apr 2012 12:38:07 -0500 context: internalize lookup logic
Matt Mackall <mpm@selenic.com> [Sun, 08 Apr 2012 12:38:07 -0500] rev 16376
context: internalize lookup logic This allows us to avoid doing rev->node->rev lookups on silly instances like "0", which end up caching the whole nodemap.
Sun, 08 Apr 2012 12:38:02 -0500 revlog: allow retrieving contents by revision number
Matt Mackall <mpm@selenic.com> [Sun, 08 Apr 2012 12:38:02 -0500] rev 16375
revlog: allow retrieving contents by revision number
Sat, 07 Apr 2012 15:43:18 -0500 revlog: add hasnode helper method
Matt Mackall <mpm@selenic.com> [Sat, 07 Apr 2012 15:43:18 -0500] rev 16374
revlog: add hasnode helper method
Fri, 06 Apr 2012 15:18:14 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 06 Apr 2012 15:18:14 -0500] rev 16373
merge with stable
Fri, 06 Apr 2012 15:17:50 -0500 merge with crew stable
Matt Mackall <mpm@selenic.com> [Fri, 06 Apr 2012 15:17:50 -0500] rev 16372
merge with crew
Fri, 06 Apr 2012 15:16:30 -0500 tags: defer tag validation until repo.tags() is called
Matt Mackall <mpm@selenic.com> [Fri, 06 Apr 2012 15:16:30 -0500] rev 16371
tags: defer tag validation until repo.tags() is called Before, we were validating all tags for any tag operation, which meant building a (nearly) full node->tag lookup tree for most operations.
Fri, 06 Apr 2012 00:28:36 -0700 parsers: fix a memleak, and add a clearcaches method to the index
Bryan O'Sullivan <bryano@fb.com> [Fri, 06 Apr 2012 00:28:36 -0700] rev 16370
parsers: fix a memleak, and add a clearcaches method to the index This change also fixes a nasty memory leak: previously, self->caches was not being freed. The new clearcaches method lets us benchmark with finer granularity, as it lets us separate the cost of loading a revlog index from those of populating and accessing the cache data structures.
Wed, 04 Apr 2012 15:59:56 +0200 hghave: remove symlink test made useless by ac0da5caebec stable
Patrick Mezard <patrick@mezard.eu> [Wed, 04 Apr 2012 15:59:56 +0200] rev 16369
hghave: remove symlink test made useless by ac0da5caebec
Wed, 04 Apr 2012 13:55:11 +0200 tests: disable progress estimate in test-debugbuilddag.t stable
Julien Cristau <julien.cristau@logilab.fr> [Wed, 04 Apr 2012 13:55:11 +0200] rev 16368
tests: disable progress estimate in test-debugbuilddag.t If the command takes long enough, including 'estimate' in the format will add some more data to the progress bar output, and make the test fail. See e.g. https://buildd.debian.org/status/fetch.php?pkg=mercurial&arch=kfreebsd-amd64&ver=2.1.2-2&stamp=1333493711
Wed, 04 Apr 2012 12:46:54 -0500 ui: swallow EBADF on stderr stable
Kevin Bullock <kbullock@ringworld.org> [Wed, 04 Apr 2012 12:46:54 -0500] rev 16367
ui: swallow EBADF on stderr ui.write_err already swallows EPIPE and EIO if a write to stderr fails. On Mac OS X at least, a write to a closed file descriptor results in EBADF. Before this patch, hg would exit with status 1 if a write to stderr failed during startup (e.g. while trying to print a warning about not finding an extension): $ ./hg --config extensions.foo= version 2>&-; echo $? 1 With this patch, it correctly swallows stderr and continues to run the command: $ ./hg --config extensions.foo= version 2>&- Mercurial Distributed SCM (version 2.1) ...
Thu, 05 Apr 2012 23:52:55 +0900 mq: use list of already known target files instead of matching object for diff
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 05 Apr 2012 23:52:55 +0900] rev 16366
mq: use list of already known target files instead of matching object for diff 'hg qnew' passes matching object to 'patch.diff()' to specify target filenames, and it causes 'dirstate.walk()' via 'repo.status()' in 'patch.diff()'. but target files are already known before 'patch.diff()' invocation. to avoid useless 'dirstate.walk()' invocation, this patch uses 'changes' argument to pass already known target files to 'patch.diff()' instead of 'match' argument. 'changes' argument of 'patch.diff()' should have lists for modified, added and removed files separately, so this patch saves status of '.hgsubstate' before commit, and put it into appropriate list in 'changes'.
Thu, 05 Apr 2012 23:52:06 +0900 mq: use exact matching in the second dirstate walking for efficiency of 'qnew'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 05 Apr 2012 23:52:06 +0900] rev 16365
mq: use exact matching in the second dirstate walking for efficiency of 'qnew' 'hg qnew' with pattern/-I/-X creates matching object with them, and uses it twice for 'dirstate.walk()': via 'repo.status()' and 'repo.commit()'. this may cause full manifest scan in the second 'dirstate.walk()', even though mq already knows complete target filenames at the first 'dirstate.walk()'. this patch creates exact matching object also in this case, and use it at 'repo.commit()' invocation to avoid full manifest scan in the second 'dirstate.walk()'. even though 'inclsubs' is added to 'pats' for original matching object, it is also passed to exact matching object, because subrepositories are deleted from result of 'dirstate.walk()' at the end of it.
Thu, 05 Apr 2012 12:31:21 +0100 tests: avoid test-hup hanging on AIX stable
Jim Hague <jim.hague@acm.org> [Thu, 05 Apr 2012 12:31:21 +0100] rev 16364
tests: avoid test-hup hanging on AIX test-hup hangs on AIX. Under ksh89 on AIX (the default shell), echo Hello; while [ ! -s not-there ]; do true; done produces no output while the loop executes. Replacing 'true' with 'sleep 0' fixes, as does using a less broken shell. ksh93 is fine. Update check-code.py to look for this, and make same change in test-serve.t. In fact test-serve works fine, probably because of additional commands between echo and the loop, but that's a subtlety not easy to test for.
Thu, 05 Apr 2012 13:00:35 -0700 parsers: incrementally parse the revlog index in C
Bryan O'Sullivan <bryano@fb.com> [Thu, 05 Apr 2012 13:00:35 -0700] rev 16363
parsers: incrementally parse the revlog index in C We only parse entries in a revlog index file when they are actually needed, and cache them when first requested. This makes a huge difference to performance on large revlogs when accessing the tip revision or performing a handful of numeric lookups (very common cases). For instance, "hg --time tip --template {node}" on a tree with 300,000 revs takes 0.15 before, 0.02 after. Even for revlog-intensive operations (e.g. running "hg log" to completion), the lazy approach is about 1% faster than the eager parse_index2.
Thu, 05 Apr 2012 15:39:07 +0200 mdiff: fix diff header generation for files with spaces (issue3357) stable
Patrick Mezard <patrick@mezard.eu> [Thu, 05 Apr 2012 15:39:07 +0200] rev 16362
mdiff: fix diff header generation for files with spaces (issue3357) diff ---/+++ should end filenames with a TAB when they contain spaces. Current code failed to do so when only the +++ file had spaces. This only happened with git renames from a name without space to one with space.
Wed, 04 Apr 2012 00:00:47 +0200 protocol: Add the stream-preferred capability
Benoit Allard <benoit@aeteurope.nl> [Wed, 04 Apr 2012 00:00:47 +0200] rev 16361
protocol: Add the stream-preferred capability This makes the client use the uncompressed protocol.
Wed, 28 Mar 2012 16:06:20 +0200 templates/filters: extracting the user portion of an email address
Matteo Capobianco <m.capobianco@gmail.com> [Wed, 28 Mar 2012 16:06:20 +0200] rev 16360
templates/filters: extracting the user portion of an email address Currently, the 'user' filter is using util.shortuser(text) (which clearly doesn't extract only the user portion of an email address, even though the help text says it does). The new 'emailuser' filter uses the new util.emailuser(text) function which, instead, does exactly that. The help text on the 'user' filter has been modified accordingly.
Thu, 05 Apr 2012 19:15:23 +0200 context: make changectx.mutable() benefit from .phase() logic stable
Patrick Mezard <patrick@mezard.eu> [Thu, 05 Apr 2012 19:15:23 +0200] rev 16359
context: make changectx.mutable() benefit from .phase() logic This fixes "hg qimport -r null". Previous versions used to: - Traceback because null revision mutability was not defined - Add an empty -1.diff patch to the series The error message: abort: revision -1 is not mutable is symptomatic of a deeper problem in phase command revision handling. It could be fixed easily in the command itself but I feel a better fix must be done in phase API which raises the issue of phase updates atomicity: aborting in phases.advanceboundary/retractboundary requires a better rollback behaviour to avoid partial changes.
Thu, 05 Apr 2012 19:23:04 +0200 patch: remove useless variable assignment
Patrick Mezard <patrick@mezard.eu> [Thu, 05 Apr 2012 19:23:04 +0200] rev 16358
patch: remove useless variable assignment
Wed, 04 Apr 2012 12:31:31 +0200 export: catch exporting empty revsets (issue3353) stable
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 04 Apr 2012 12:31:31 +0200] rev 16357
export: catch exporting empty revsets (issue3353) Additionally add tests for empty revsets and unknown revisions.
Wed, 04 Apr 2012 11:19:09 +0200 merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 04 Apr 2012 11:19:09 +0200] rev 16356
merge with stable
Wed, 04 Apr 2012 11:18:42 +0200 test-merge-types: allow different output with existing hgmerge (issue3346) stable
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 04 Apr 2012 11:18:42 +0200] rev 16355
test-merge-types: allow different output with existing hgmerge (issue3346) Because hgmerge was meant to be adjusted to personal needs, there may be many remaining copies in people's $PATH.
Wed, 04 Apr 2012 10:57:48 +0200 inotify: catch SignalInterrupt during shutdown (issue3351) stable
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 04 Apr 2012 10:57:48 +0200] rev 16354
inotify: catch SignalInterrupt during shutdown (issue3351) When inotify.repowatcher.shutdown() is called, mercurial.error.SignalInterrupt exception is thrown by mercurial.dispatch._runcatch.catchterm(), therefore socketlistener.shutdown() is not called. Catching this allows cleanup action (removing the socket file) to proceed.
Tue, 03 Apr 2012 22:02:04 +0200 merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 22:02:04 +0200] rev 16353
merge with stable
Tue, 03 Apr 2012 22:01:28 +0200 clone: always close source repository (issue2491) stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 22:01:28 +0200] rev 16352
clone: always close source repository (issue2491) This is especially needed for cloning from bundles as a temporary bundlerepository is created which needs to be deleted after clone has finished.
Tue, 03 Apr 2012 21:02:00 +0200 merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 21:02:00 +0200] rev 16351
merge with stable
Tue, 03 Apr 2012 19:06:35 +0200 tests: make tests work if directory contains special characters stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 19:06:35 +0200] rev 16350
tests: make tests work if directory contains special characters With this quoting tests will work e.g. in "/tmp/foo bar/mercurial/".
Tue, 03 Apr 2012 16:36:25 +0200 test-gpg: replace 825565136235 by md5sum check stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 03 Apr 2012 16:36:25 +0200] rev 16349
test-gpg: replace 825565136235 by md5sum check The call to 'hg identify' would have needed '--cwd "$TESTDIR' to make it work anyway, but by using a checksum this test can work outside a repository.
Tue, 03 Apr 2012 11:35:04 -0500 config: discard UTF-8 BOM if found
Matt Mackall <mpm@selenic.com> [Tue, 03 Apr 2012 11:35:04 -0500] rev 16348
config: discard UTF-8 BOM if found
Mon, 02 Apr 2012 17:02:50 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 17:02:50 -0500] rev 16347
merge with stable
Mon, 02 Apr 2012 17:02:03 -0500 tests: shorten post-test sleeps
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 17:02:03 -0500] rev 16346
tests: shorten post-test sleeps This helps expose races
Mon, 02 Apr 2012 22:25:55 +0100 tests: don't run test-gpg if not in a working directory stable
Javi Merino <cibervicho@gmail.com> [Mon, 02 Apr 2012 22:25:55 +0100] rev 16345
tests: don't run test-gpg if not in a working directory test-gpg has to be run in a mercurial working directory as it uses that to verify that it hasn't modified the trustdb.gpg file. Skip the test if it is running in an exploded tarball.
Mon, 02 Apr 2012 16:46:58 -0500 tests: avoid zombie lockup with test-hup stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 16:46:58 -0500] rev 16344
tests: avoid zombie lockup with test-hup The 'while kill -0' recipe can cause a livelock if the process we're waiting to die is a normal child process. If it becomes a zombie that the shell doesn't reap (shell bug?), it will continue to be able to accept signals. So instead, we just wait(1).
Mon, 02 Apr 2012 16:09:29 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 16:09:29 -0500] rev 16343
merge with stable
Mon, 02 Apr 2012 16:04:07 -0500 tests: make test-hup more race-proof stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 16:04:07 -0500] rev 16342
tests: make test-hup more race-proof We need to wait until a journal exists AND is non-empty before aborting a transaction to get stable output. We move the kill wait outside the fifo block to avoid potential deadlock.
Mon, 02 Apr 2012 15:06:36 -0500 tests: re-silence test-bad-pull log messages stable
Matt Mackall <mpm@selenic.com> [Mon, 02 Apr 2012 15:06:36 -0500] rev 16341
tests: re-silence test-bad-pull log messages
Sun, 01 Apr 2012 15:57:04 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:57:04 -0500] rev 16340
merge with stable
Sun, 01 Apr 2012 15:54:29 -0500 tests: really add blacklist for vfat on Linux stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:54:29 -0500] rev 16339
tests: really add blacklist for vfat on Linux
Sun, 01 Apr 2012 15:35:12 -0500 tests: fix one more sed -i
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:35:12 -0500] rev 16338
tests: fix one more sed -i
Sun, 01 Apr 2012 15:34:22 -0500 merge stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:34:22 -0500] rev 16337
merge stable
Sun, 01 Apr 2012 15:31:07 -0500 Added signature for changeset b9bd95e61b49 stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:31:07 -0500] rev 16336
Added signature for changeset b9bd95e61b49
Sun, 01 Apr 2012 15:31:04 -0500 Added tag 2.1.2 for changeset b9bd95e61b49 stable
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 15:31:04 -0500] rev 16335
Added tag 2.1.2 for changeset b9bd95e61b49
Sun, 01 Apr 2012 14:23:55 -0500 tests: fix shutdown race in test-bad-pull stable 2.1.2
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 14:23:55 -0500] rev 16334
tests: fix shutdown race in test-bad-pull
Sun, 01 Apr 2012 14:01:10 -0500 check-code: check for sed -i
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 14:01:10 -0500] rev 16333
check-code: check for sed -i
Sun, 01 Apr 2012 13:59:11 -0500 tests: remove sed -i from test-record
Matt Mackall <mpm@selenic.com> [Sun, 01 Apr 2012 13:59:11 -0500] rev 16332
tests: remove sed -i from test-record
Sun, 01 Apr 2012 18:18:48 +0900 tests: fix portability of sed usage in test-mq stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 01 Apr 2012 18:18:48 +0900] rev 16331
tests: fix portability of sed usage in test-mq on some platform (Mac OS X and Solaris, at least), to insert new text line, sed function 'i' should be followed by: - backslash('\'), - new-line, - text to be inserted and - new-line GNU sed on Linux can recognize both previous and new ones as same modification request. in addition to it, this patch avoids to use '-i' option for sed, because it is not so portable, as noted in WritingTests wiki page.
Sat, 31 Mar 2012 15:39:44 -0500 zsh completion: fix error in qfinish completions from 88a82069be4a
Augie Fackler <durin42@gmail.com> [Sat, 31 Mar 2012 15:39:44 -0500] rev 16330
zsh completion: fix error in qfinish completions from 88a82069be4a The actual flag is --applied, not --all.
Sat, 31 Mar 2012 14:05:10 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 31 Mar 2012 14:05:10 -0500] rev 16329
merge with stable
(0) -10000 -3000 -1000 -300 -100 -48 +48 +100 +300 +1000 +3000 +10000 +30000 tip