Mon, 23 Apr 2012 12:12:04 +0200 update: make --check abort with dirty subrepos stable
Patrick Mezard <patrick@mezard.eu> [Mon, 23 Apr 2012 12:12:04 +0200] rev 16491
update: make --check abort with dirty subrepos Aka "we could use dirty() but... yeah let's use it"
Mon, 23 Apr 2012 12:09:54 +0200 update: fix "not rev" vs "rev is None" stable
Patrick Mezard <patrick@mezard.eu> [Mon, 23 Apr 2012 12:09:54 +0200] rev 16490
update: fix "not rev" vs "rev is None"
Sat, 21 Apr 2012 08:24:10 -0700 plan9: add missing source entries to proto stable
Steven Stallion <sstallion@gmail.com> [Sat, 21 Apr 2012 08:24:10 -0700] rev 16489
plan9: add missing source entries to proto
Sun, 22 Apr 2012 20:30:36 -0700 Merge stable stable
Brendan Cully <brendan@kublai.com> [Sun, 22 Apr 2012 20:30:36 -0700] rev 16488
Merge stable
Mon, 23 Apr 2012 01:39:26 +0200 tests: fix incorrect markup of continued lines of sh commands stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 23 Apr 2012 01:39:26 +0200] rev 16487
tests: fix incorrect markup of continued lines of sh commands
Mon, 23 Apr 2012 01:39:26 +0200 check-code: 'printf \0' is apparently fine - accept it in check-code stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 23 Apr 2012 01:39:26 +0200] rev 16486
check-code: 'printf \0' is apparently fine - accept it in check-code Nobody complained over '\0' in test-eol.t. The too strict check becomes a problem when this check is applied to more lines.
Mon, 23 Apr 2012 01:39:26 +0200 tests: solaris sh can not negate exit status with '!' stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 23 Apr 2012 01:39:26 +0200] rev 16485
tests: solaris sh can not negate exit status with '!'
Mon, 23 Apr 2012 01:39:26 +0200 tests: hide diff -u saying 'No differences encountered' on solaris stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 23 Apr 2012 01:39:26 +0200] rev 16484
tests: hide diff -u saying 'No differences encountered' on solaris
Mon, 23 Apr 2012 01:39:26 +0200 tests: ^ must be quoted when used on solaris sh stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 23 Apr 2012 01:39:26 +0200] rev 16483
tests: ^ must be quoted when used on solaris sh The check was broken when it was introduced in 6e4cf8319f54.
Mon, 23 Apr 2012 01:39:26 +0200 tests: remove test-pull-pull-corruption2.t stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 23 Apr 2012 01:39:26 +0200] rev 16482
tests: remove test-pull-pull-corruption2.t This test gave random failures on slow machines (solaris). The test was added in 6f6e210b38cf as a test case from issue148. It did however require manual setup: The attached script creates such a corruption (you have to add a "import time; time.spleep(3)" in localrepo.addchangegroup before the changegroup manifest are written for example. The test as it is has thus no value as automatic test case. The necessary sleep could be added by a hook, but test-pending.t already tests that.
Mon, 23 Apr 2012 01:39:26 +0200 tests: remove race in test-pull-pull-corruption.t stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 23 Apr 2012 01:39:26 +0200] rev 16481
tests: remove race in test-pull-pull-corruption.t The output from the background process was not always interleaved "correctly" with output from the foreground process.
Mon, 23 Apr 2012 01:39:26 +0200 tests: fix bashism in test-convert-splicemap.t stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 23 Apr 2012 01:39:26 +0200] rev 16480
tests: fix bashism in test-convert-splicemap.t This should have been caught by check-code.
Wed, 18 Apr 2012 15:16:15 +0200 opener: coding style, use triple quotes for doc string stable
Thomas Arendsen Hein <thomas@intevation.de> [Wed, 18 Apr 2012 15:16:15 +0200] rev 16479
opener: coding style, use triple quotes for doc string
Mon, 16 Apr 2012 01:11:29 +0900 icasefs: make case-folding collision detection as rename aware (issue3370) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 16 Apr 2012 01:11:29 +0900] rev 16478
icasefs: make case-folding collision detection as rename aware (issue3370) if the file in target context causes case-folding collision against one in working context, current implementation aborts merging with it, even thouhg collding one (in target) is the file renamed from collided one (in working). this patch uses file copy information to know whether colliding file is renamed from collided one or not: if so, collision between them is ignored. this patch also avoids collision detection between current context and target context, if working context is clean (with --check/-c) or will be clean (with --clean/-C).
Fri, 20 Apr 2012 11:08:14 -0500 bdiff.bdiff: release the GIL before doing expensive diff operations stable
Augie Fackler <raf@durin42.com> [Fri, 20 Apr 2012 11:08:14 -0500] rev 16477
bdiff.bdiff: release the GIL before doing expensive diff operations This means that threaded webservers will have more of a chance of doing something useful while the C extension is busy computing a delta. Not doing this was causing problems for Google Code with a 25 meg text file that takes O(7 minutes) to deltify.
Fri, 20 Apr 2012 11:57:14 -0500 fetch: remove confusing reference to "authoritative" changes stable
Kevin Bullock <kbullock@ringworld.org> [Fri, 20 Apr 2012 11:57:14 -0500] rev 16476
fetch: remove confusing reference to "authoritative" changes
Fri, 20 Apr 2012 19:11:54 +0200 patch: be more tolerant with "Parent" header (issue3356) stable
Patrick Mezard <patrick@mezard.eu> [Fri, 20 Apr 2012 19:11:54 +0200] rev 16475
patch: be more tolerant with "Parent" header (issue3356) Here is how export and mq write the "Parent" header: mq: # Parent XXXXX export: # Parent XXXXX then import expects exactly 2 spaces while mq tolerates one or more. So "hg import --exact" truncates mq generated patches header by one character and fails. This patch aligns import "Parent" header parsing on mq one. I do not expect spaces in parent references anytime soon. Reported by Stefan Ring <stefanrin@gmail.com>
Thu, 19 Apr 2012 17:08:12 +0200 pure/osutil: use Python's msvcrt module (issue3380) stable
Adrian Buehlmann <adrian@cadifra.com> [Thu, 19 Apr 2012 17:08:12 +0200] rev 16474
pure/osutil: use Python's msvcrt module (issue3380) As proposed by Christophe Gouiran <christophe.gouiran@eurocopter.com>
Thu, 19 Apr 2012 18:11:48 +0300 commands: add missing wlock to graft stable
Idan Kamara <idankk86@gmail.com> [Thu, 19 Apr 2012 18:11:48 +0300] rev 16473
commands: add missing wlock to graft
Thu, 19 Apr 2012 18:11:42 +0300 dirstate: write branch file atomically stable
Idan Kamara <idankk86@gmail.com> [Thu, 19 Apr 2012 18:11:42 +0300] rev 16472
dirstate: write branch file atomically
Thu, 19 Apr 2012 17:59:23 +0300 commands: add missing wlock to branch stable
Idan Kamara <idankk86@gmail.com> [Thu, 19 Apr 2012 17:59:23 +0300] rev 16471
commands: add missing wlock to branch
Thu, 19 Apr 2012 17:59:23 +0300 commands: add missing wlock to backout stable
Idan Kamara <idankk86@gmail.com> [Thu, 19 Apr 2012 17:59:23 +0300] rev 16470
commands: add missing wlock to backout
Thu, 19 Apr 2012 20:54:56 +0900 i18n: show localized messages for commands/extensions in hgweb help top (issue3383) stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 19 Apr 2012 20:54:56 +0900] rev 16469
i18n: show localized messages for commands/extensions in hgweb help top (issue3383) in hgweb help top page, help topics are localized, but abstracts of commands and extensions are not, although these are already translated. it is because localized messages for them should be explicitly looked up by original ones. this patch looks localized messages up for each commands/extensions.
Thu, 19 Apr 2012 23:36:42 +0200 revert: show warning when reverting subrepos that do not support revert stable
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 19 Apr 2012 23:36:42 +0200] rev 16468
revert: show warning when reverting subrepos that do not support revert The warning is similar to the warning that was shown before hgsubrepo revert support was added, with the exception that now the subrepo type is shown. For example, when trying to revert a git subrepo located in "include/mygitsub", the warning message would be: include/mygitsub: reverting git subrepos is unsupported
Wed, 18 Apr 2012 21:27:35 -0700 revset: fix O(n**2) behaviour of bisect() (issue3381) stable
Bryan O'Sullivan <bryano@fb.com> [Wed, 18 Apr 2012 21:27:35 -0700] rev 16467
revset: fix O(n**2) behaviour of bisect() (issue3381)
Wed, 18 Apr 2012 14:04:58 +0200 convert/svn: do not try converting empty head revisions (issue3347) stable
Patrick Mezard <patrick@mezard.eu> [Wed, 18 Apr 2012 14:04:58 +0200] rev 16466
convert/svn: do not try converting empty head revisions (issue3347) Subversion conversion works by picking trunk and branches heads, computing a revision graph from them and converting the selected commits. By design we fail to convert empty revisions so we have to be careful when discovering the revision graph. In this particular issue, the source svn repository was a partial mirror made by svnsync. The funny part is svnsync preserves all revisions including empty ones. Also, we trusted ra.stat(path, stop).created_rev to give us the latest revision with changes in path history up to stop. This assumption broke at least when path is '', that is the repository root, which always returned 'stop' revision despited being empty. The workaround is to first trust ra.stat() but if the returned revision appear empty, search the whole path history from stop to r1 until some changes are found.
Wed, 18 Apr 2012 14:04:58 +0200 convert/svn: refactor svn_source.latest() with a nested function stable
Patrick Mezard <patrick@mezard.eu> [Wed, 18 Apr 2012 14:04:58 +0200] rev 16465
convert/svn: refactor svn_source.latest() with a nested function We will call it more than once for reasons detailed later.
Wed, 18 Apr 2012 14:04:57 +0200 convert/svn: clarify svn_source.latest() stop arg default value stable
Patrick Mezard <patrick@mezard.eu> [Wed, 18 Apr 2012 14:04:57 +0200] rev 16464
convert/svn: clarify svn_source.latest() stop arg default value stop=0 could pass for a valid default value at first sight.
Tue, 17 Apr 2012 21:12:37 -0700 factotum: rename mount and path configuration entries stable
Steven Stallion <sstallion@gmail.com> [Tue, 17 Apr 2012 21:12:37 -0700] rev 16463
factotum: rename mount and path configuration entries The factotum extension used mount and path entries which were too generic. These have been replaced by mountpoint and executable (respectively) to match existing conventions.
Wed, 18 Apr 2012 11:46:23 -0500 Added signature for changeset d9e2f09d5488 stable
Matt Mackall <mpm@selenic.com> [Wed, 18 Apr 2012 11:46:23 -0500] rev 16462
Added signature for changeset d9e2f09d5488
Wed, 18 Apr 2012 11:46:20 -0500 Added tag 2.2-rc for changeset d9e2f09d5488 stable
Matt Mackall <mpm@selenic.com> [Wed, 18 Apr 2012 11:46:20 -0500] rev 16461
Added tag 2.2-rc for changeset d9e2f09d5488
Wed, 18 Apr 2012 11:45:50 -0500 Makefile: be more careful when cleaning up pure/ components stable 2.2-rc
Matt Mackall <mpm@selenic.com> [Wed, 18 Apr 2012 11:45:50 -0500] rev 16460
Makefile: be more careful when cleaning up pure/ components The recent introduction of pure/__init__.py causes mercurial/__init__.py to get clobbered by make clean.
Tue, 17 Apr 2012 17:56:36 -0500 merge default into stable for 2.2 code freeze stable
Matt Mackall <mpm@selenic.com> [Tue, 17 Apr 2012 17:56:36 -0500] rev 16459
merge default into stable for 2.2 code freeze
Wed, 18 Apr 2012 01:20:16 +0300 commit: add option to amend the working dir parent
Idan Kamara <idankk86@gmail.com> [Wed, 18 Apr 2012 01:20:16 +0300] rev 16458
commit: add option to amend the working dir parent The --amend flag can be used to amend the parent of the working directory with a new commit that contains the changes in the parent in addition to those currently reported by "hg status", if there are any. The old commit is stored in a backup bundle in ".hg/strip-backup"(see "hg help bundle" and "hg help unbundle" on how to restore it). Message, user and date are taken from the amended commit unless specified. When a message isn't specified on the command line, the editor will open with the message of the amended commit. It is not possible to amend public changesets (see "hg help phases") or changesets that have children. Behind the scenes, first commit the update (if there is one) as a regular child of the current parent. Then create a new commit on the parent's parent with the updated contents. Then change the working copy parent to this new combined changeset. Finally, strip the amended commit and update commit created in the beginning. An alternative (cleaner?) approach of doing this is suggested here: http://selenic.com/pipermail/mercurial-devel/2012-March/038540.html It is currently not possible to amend merge commits or recursively, this can be added at a later time.
Mon, 16 Apr 2012 22:41:03 -0700 transplant: remove extraneous whitespace
Steven Stallion <sstallion@gmail.com> [Mon, 16 Apr 2012 22:41:03 -0700] rev 16457
transplant: remove extraneous whitespace
Tue, 17 Apr 2012 11:13:38 -0500 journal: use tryread helper to backup files (issue3375)
Matt Mackall <mpm@selenic.com> [Tue, 17 Apr 2012 11:13:38 -0500] rev 16456
journal: use tryread helper to backup files (issue3375)
Tue, 17 Apr 2012 11:11:59 -0500 opener: introduce tryread helper
Matt Mackall <mpm@selenic.com> [Tue, 17 Apr 2012 11:11:59 -0500] rev 16455
opener: introduce tryread helper This makes it easier to follow the common pattern "read a file or give an empty string if it's missing".
Tue, 17 Apr 2012 07:22:44 +0200 tests: add test for fileset 'subrepo' keyword
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 17 Apr 2012 07:22:44 +0200] rev 16454
tests: add test for fileset 'subrepo' keyword
Tue, 17 Apr 2012 10:33:47 +0200 revset: make matching() work on python 2.4
Patrick Mezard <patrick@mezard.eu> [Tue, 17 Apr 2012 10:33:47 +0200] rev 16453
revset: make matching() work on python 2.4 tuple.index() was apparently added to python 2.6: http://bugs.python.org/issue1696444 Also remove a trailing comma to make check-code.py happy.
Tue, 17 Apr 2012 15:10:33 +0200 revset: use list instead of tuple for compatibility with python before 2.6
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 17 Apr 2012 15:10:33 +0200] rev 16452
revset: use list instead of tuple for compatibility with python before 2.6 'string elements'.split() instead of explicitly typing a list of strings is used. This is done in other parts of Mercurial code, too.
Mon, 16 Apr 2012 16:50:25 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 16 Apr 2012 16:50:25 -0500] rev 16451
merge with stable
Mon, 16 Apr 2012 11:48:15 +0200 archive: make it work with svn subrepos (issue3308) stable
Patrick Mezard <patrick@mezard.eu> [Mon, 16 Apr 2012 11:48:15 +0200] rev 16450
archive: make it work with svn subrepos (issue3308) - _svncommand() in files() returns a tuple since 0ae98cd2a83f not a string. - _svncommand() in filedata() returns a tuple not a string. - "svn list" returns files but also directories. - "svn list" is not recursive by default. I have no idea what happens to svn:externals possibly embedded in the svn subrepository.
Sun, 15 Apr 2012 16:05:57 +0200 largefiles: hide .hglf/ prefix for largefiles in hgweb
Martin Geisler <mg@lazybytes.net> [Sun, 15 Apr 2012 16:05:57 +0200] rev 16449
largefiles: hide .hglf/ prefix for largefiles in hgweb This makes the manifest view in hgweb match what you see in the working copy and what you get when you download an archive in hgweb.
Sun, 15 Apr 2012 16:05:53 +0200 hgweb: add hook for remapping repository path into virtual paths
Martin Geisler <mg@lazybytes.net> [Sun, 15 Apr 2012 16:05:53 +0200] rev 16448
hgweb: add hook for remapping repository path into virtual paths Extensions such as largefiles can use this to remap files so they appear in the same location as they do in the user's working copy.
Sun, 15 Apr 2012 00:27:31 +0200 tests: add tests for matching keyword
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 15 Apr 2012 00:27:31 +0200] rev 16447
tests: add tests for matching keyword This adds a couple of tests for the revset "matching" keyword: 1. Test that the 2nd parameter is optional 2. Test that all the 1st argument can be a revset and that all the supported fields of the 2nd argument work.
Sat, 14 Apr 2012 01:41:03 +0200 revset: speedup matching() by first matching fields that take less time to
Angel Ezquerra <angel.ezquerra@gmail.com> [Sat, 14 Apr 2012 01:41:03 +0200] rev 16446
revset: speedup matching() by first matching fields that take less time to match This patch sorts the fields that are passed to the matching function so that it always starts by matching those fields that take less time to match. Not all fields take the same amount of time to match. I've done several measurements running the following command: hg --time log -r "matching(1, field)" on the mercurial repository, and where 'field' was each one of the fields accepted by match. In order to avoid the print overhead (which could be different for different fields, given the different number of matches) I used a modified version of the matching() function which always returns no matches. These tests showed that different fields take wildly different amounts of time to match. Particulary the substate field takes up to 25 seconds to match on my machine, compared to the 0.3 seconds that takes to match the phase field or the 2 seconds (approx) that takes to match most fields. With this patch, matching both the phase and the substate of a revision takes the same amount of time as matching the phase. The field match order introduced by this patch is as follows: phase, parents, user, date, branch, summary, files, description, substate An extra nice thing about this patch is that it makes the match time stable.
Fri, 13 Apr 2012 13:46:49 +0200 revset: speedup matching() by stopping the match early if a field does not match
Angel Ezquerra <angel.ezquerra@gmail.com> [Fri, 13 Apr 2012 13:46:49 +0200] rev 16445
revset: speedup matching() by stopping the match early if a field does not match Rather than getting all the fields that are being matches from every revision and then comparing them to those of the target revision, compare each field one by one and stop the match as soon as there is a match failure. This can greatly reduce the match time when matching multiple fields. The impact on match time when matching a single field seems negligible (according to my measurements).
Fri, 13 Apr 2012 13:35:45 +0200 revset: make matching keyword not match summary when matching for description
Angel Ezquerra <angel.ezquerra@gmail.com> [Fri, 13 Apr 2012 13:35:45 +0200] rev 16444
revset: make matching keyword not match summary when matching for description
Thu, 22 Mar 2012 21:12:15 +0100 fileset: add "subrepo" fileset symbol
Angel Ezquerra <angel.ezquerra@gmail.com> [Thu, 22 Mar 2012 21:12:15 +0100] rev 16443
fileset: add "subrepo" fileset symbol This new fileset symbol returns a list of subrepos whose paths match a given pattern. If the argument has no pattern type set, an exact match is performed. If no argument is passed, return a list of all subrepos.
Sun, 15 Apr 2012 23:47:46 -0700 plan9: finalize documentation for next release
Steven Stallion <sstallion@gmail.com> [Sun, 15 Apr 2012 23:47:46 -0700] rev 16442
plan9: finalize documentation for next release
Mon, 16 Apr 2012 10:56:37 +0200 localrepo: do not complain about missing journal files
Alain Leufroy <alain.leufroy@logilab.fr> [Mon, 16 Apr 2012 10:56:37 +0200] rev 16441
localrepo: do not complain about missing journal files
Mon, 16 Apr 2012 10:33:18 +0200 repair: fix missing import
Alain Leufroy <alain.leufroy@logilab.fr> [Mon, 16 Apr 2012 10:33:18 +0200] rev 16440
repair: fix missing import introduced by: b5c0c7d0f83fe56240ce7a919581f1cbff4f5ee5
Mon, 16 Apr 2012 17:03:39 +0200 largefiles: fix cat for largefiles (issue3352)
Na'Tosha Bard <natosha@unity3d.com> [Mon, 16 Apr 2012 17:03:39 +0200] rev 16439
largefiles: fix cat for largefiles (issue3352) This is a fix to largefiles so that 'hg cat' will work correctly when a largefile is specified. As per discussion on Issue 3352: 1) The file will be printed regardless if it is binary or large. 2) The file is downloaded if it is not readily available (not found in the system cache), so that it can be printed. If the download fails, then we abort.
Mon, 16 Apr 2012 08:50:40 -0700 pure: quiesce build warnings
Steven Stallion <sstallion@gmail.com> [Mon, 16 Apr 2012 08:50:40 -0700] rev 16438
pure: quiesce build warnings The following patch fixes the following warning when building pure: package init file 'mercurial/pure/__init__.py' not found (or not a regular file)
Mon, 16 Apr 2012 11:26:00 -0500 util.h: replace ntohl/htonl with get/putbe32
Matt Mackall <mpm@selenic.com> [Mon, 16 Apr 2012 11:26:00 -0500] rev 16437
util.h: replace ntohl/htonl with get/putbe32
Fri, 13 Apr 2012 10:08:08 +0200 scmutil: fix systemrcpath regression introduced in f5dd179bfa4a
Wolfgang Treutterer <Wolfgang.Treutterer@ipp.mpg.de> [Fri, 13 Apr 2012 10:08:08 +0200] rev 16436
scmutil: fix systemrcpath regression introduced in f5dd179bfa4a Changeset f5dd179bfa4a introduced a 'root' path component to look for hgrc files, which is used both as an absolute path and a path relative to the <install-root>. The latter one was broken since 'root' was set to an absolute location and the subsequent os.path.join discarded the <install-root> path prefix.
Fri, 13 Apr 2012 10:14:59 +0200 revlog: fix partial revision() docstring (from d7d64b89a65c)
Patrick Mezard <patrick@mezard.eu> [Fri, 13 Apr 2012 10:14:59 +0200] rev 16435
revlog: fix partial revision() docstring (from d7d64b89a65c)
Sat, 14 Apr 2012 11:27:11 +0200 graphlog: fix --follow FILE and relative paths
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Apr 2012 11:27:11 +0200] rev 16434
graphlog: fix --follow FILE and relative paths The situation is complicated because filelog() revset uses a match object in relpath mode while follow() revset interprets the filename as a manifest entry.
Sat, 14 Apr 2012 11:16:57 +0200 graphlog: reduce duplication in --follow code
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Apr 2012 11:16:57 +0200] rev 16433
graphlog: reduce duplication in --follow code
Sat, 14 Apr 2012 10:44:13 +0200 graphlog: add all log options to glog command
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Apr 2012 10:44:13 +0200] rev 16432
graphlog: add all log options to glog command glog and log -G should be equivalent.
Sat, 14 Apr 2012 10:30:38 +0200 graphlog: implement --hidden
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Apr 2012 10:30:38 +0200] rev 16431
graphlog: implement --hidden
Wed, 28 Mar 2012 11:42:17 +0200 revert: add support for reverting subrepos without --no-backup and/or --all
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 28 Mar 2012 11:42:17 +0200] rev 16430
revert: add support for reverting subrepos without --no-backup and/or --all When a subrepo is reverted but --no-backup is not set, call revert on the subrepo that is being reverted prior to updating it to the revision specified in the parent repo's .hgsubstate file. The --all flag is passed down to the subrepo when it is being reverted. If the --all flag is not set, all files that are modified on the subrepo will be reverted.
Wed, 28 Mar 2012 11:42:17 +0200 revert: add support for reverting subrepos
Angel Ezquerra <angel.ezquerra@gmail.com> [Wed, 28 Mar 2012 11:42:17 +0200] rev 16429
revert: add support for reverting subrepos Reverting a subrepo is done by updating it to the revision that is selected on the parent repo .hgsubstate file. * ISSUES/TODO: - reverting added and removed subrepos is not supported yet. - reverting subrepos is only supported if the --no-backup flag is used (this limitation will be removed on another patch). - The behavior of the --all flag has been changed. It now reverts subrepos as well. Note that this may lead to data loss if the user has a dirty subrepo.
Sat, 14 Apr 2012 01:39:35 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 14 Apr 2012 01:39:35 -0500] rev 16428
merge with stable
Fri, 13 Apr 2012 11:01:07 -0700 commands: move bundle type validation earlier
Bryan O'Sullivan <bryano@fb.com> [Fri, 13 Apr 2012 11:01:07 -0700] rev 16427
commands: move bundle type validation earlier Checking the bundle type late in the command's execution can mean that we do work for a long time before complaining about incorrect user input and aborting. Guess how I discovered this.
Fri, 13 Apr 2012 22:55:46 -0500 changegroupsubset: optimize function lookup in prune
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:46 -0500] rev 16426
changegroupsubset: optimize function lookup in prune
Fri, 13 Apr 2012 22:55:46 -0500 changegroup: optimize gennodelist
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:46 -0500] rev 16425
changegroup: optimize gennodelist
Fri, 13 Apr 2012 22:55:46 -0500 revlog: drop some unneeded rev.node calls in revdiff
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:46 -0500] rev 16424
revlog: drop some unneeded rev.node calls in revdiff
Thu, 12 Apr 2012 20:26:33 -0700 revlog: avoid an expensive string copy
Bryan O'Sullivan <bryano@fb.com> [Thu, 12 Apr 2012 20:26:33 -0700] rev 16423
revlog: avoid an expensive string copy This showed up in a statprof profile of "hg svn rebuildmeta", which is read-intensive on the changelog. This two-line patch improved the performance of that command by 10%.
Fri, 13 Apr 2012 22:55:46 -0500 changegroupsubset: avoid setdefault in inner loop
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:46 -0500] rev 16422
changegroupsubset: avoid setdefault in inner loop
Fri, 13 Apr 2012 22:55:40 -0500 changegroupsubset: drop repeated len() calls
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:55:40 -0500] rev 16421
changegroupsubset: drop repeated len() calls
Fri, 13 Apr 2012 22:27:29 -0500 changegroup: reduce progress overhead
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:27:29 -0500] rev 16420
changegroup: reduce progress overhead
Fri, 13 Apr 2012 22:23:45 -0500 changegroupsubset: renest inner loop
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 22:23:45 -0500] rev 16419
changegroupsubset: renest inner loop The mdata list should generally be shorter than changedfiles
Fri, 13 Apr 2012 21:35:48 -0500 revlog: increase readahead size
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 21:35:48 -0500] rev 16418
revlog: increase readahead size
Fri, 13 Apr 2012 15:32:49 -0500 revset: avoid demandimport bug
Matt Mackall <mpm@selenic.com> [Fri, 13 Apr 2012 15:32:49 -0500] rev 16417
revset: avoid demandimport bug Apparently the "import x as xy" doesn't manage to update xy in the current scope's dictionary after load, which causes nodemod.nullrev to do a huge amount of demandload magic in the inner loop.
Fri, 13 Apr 2012 15:07:13 +0200 mq: replace hasattr() with util.safehasattr(), update check-code.py stable
Patrick Mezard <patrick@mezard.eu> [Fri, 13 Apr 2012 15:07:13 +0200] rev 16416
mq: replace hasattr() with util.safehasattr(), update check-code.py
Thu, 12 Apr 2012 20:52:39 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 12 Apr 2012 20:52:39 -0500] rev 16415
merge with stable
Thu, 12 Apr 2012 14:05:59 -0700 parsers: use base-16 trie for faster node->rev mapping
Bryan O'Sullivan <bryano@fb.com> [Thu, 12 Apr 2012 14:05:59 -0700] rev 16414
parsers: use base-16 trie for faster node->rev mapping This greatly speeds up node->rev lookups, with results that are often user-perceptible: for instance, "hg --time log" of the node associated with rev 1000 on a linux-2.6 repo improves from 0.3 seconds to 0.03. I have not found any instances of slowdowns. The new perfnodelookup command in contrib/perf.py demonstrates the speedup more dramatically, since it performs no I/O. For a single lookup, the new code is about 40x faster. These changes also prepare the ground for the possibility of further improving the performance of prefix-based node lookups.
Thu, 12 Apr 2012 20:22:18 -0500 check-code: avoid false-positive on ++
Matt Mackall <mpm@selenic.com> [Thu, 12 Apr 2012 20:22:18 -0500] rev 16413
check-code: avoid false-positive on ++
Wed, 11 Apr 2012 11:37:13 +0200 graphlog: cleanup before code move
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:37:13 +0200] rev 16412
graphlog: cleanup before code move - Avoid revset module aliasing - Mark makefilematcher() private
Wed, 11 Apr 2012 11:32:00 +0200 graphlog: correctly handle calls in subdirectories
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:32:00 +0200] rev 16411
graphlog: correctly handle calls in subdirectories
Wed, 11 Apr 2012 11:29:12 +0200 context: revert workingctx.ancestors() followfirst option
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:29:12 +0200] rev 16410
context: revert workingctx.ancestors() followfirst option It was introduced by mistake in 352053e6cd8e.
Wed, 11 Apr 2012 11:25:34 +0200 graphlog: fix --follow-first --rev combinations
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:25:34 +0200] rev 16409
graphlog: fix --follow-first --rev combinations This solves a similar problem than the previous --follow/--rev patch. This time we need changelog.ancestors()/descendants() filtering on first parent. Duplicating the code looked better than introducing keyword arguments. Besides, the ancestors() version was already implemented in follow() revset.
Wed, 11 Apr 2012 11:22:40 +0200 graphlog: fix --follow --rev combinations
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:22:40 +0200] rev 16408
graphlog: fix --follow --rev combinations The previous behaviour of --follow was really a subset of what is really happening in log command: - If --rev is not passed, default to '.:0' - Resolve --rev into a revision list "revs" - Set the starting revision to revs[0] - If revs[1] > revs[0] keep descendants(revs[0]) in revs, otherwise keep ancestors.
Wed, 11 Apr 2012 11:17:26 +0200 graphlog: support changeset identifiers in --branch
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:17:26 +0200] rev 16407
graphlog: support changeset identifiers in --branch
Wed, 11 Apr 2012 11:14:07 +0200 graphlog: pass changesets to revset.match() in changelog order
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:14:07 +0200] rev 16406
graphlog: pass changesets to revset.match() in changelog order Running: $ time hg debugrevspec 'user(mpm)' | wc on Mercurial repository takes 1.0s with a regular version and 1.8s if commands.debugrevspec() is patched to pass revisions to revset.match() from tip to 0. Depending on what we expect from the revset API and caller wisdom, we might want to push this change in revset.match() later.
Wed, 11 Apr 2012 11:07:30 +0200 graphlog: refactor revset() to return revisions
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Apr 2012 11:07:30 +0200] rev 16405
graphlog: refactor revset() to return revisions When --follow and --rev are passed, --follow actual behaviour depends on the input revision sequence defined by --rev. If --rev is not passed, the default revision sequence depends on the presence of --follow. It means the revision sequence generation is part of log logic and must be wrapped. The issue described above is fixed in following patches.
Thu, 12 Apr 2012 15:21:54 -0700 store: speed up read and write of large fncache files
Bryan O'Sullivan <bryano@fb.com> [Thu, 12 Apr 2012 15:21:54 -0700] rev 16404
store: speed up read and write of large fncache files In my tests of an fncache containing 300,000 entries, this improves read time from 567ms to 307, and write time from 1328ms to 533. These numbers aren't so great, since the fncache file is only 17MB in size, but they're an improvement.
Thu, 12 Apr 2012 15:21:52 -0700 perf: time fncache read and write performance
Bryan O'Sullivan <bryano@fb.com> [Thu, 12 Apr 2012 15:21:52 -0700] rev 16403
perf: time fncache read and write performance
Sun, 01 Apr 2012 14:12:14 +0200 revset: add "matching" keyword
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 01 Apr 2012 14:12:14 +0200] rev 16402
revset: add "matching" keyword This keyword can be used to find revisions that "match" one or more fields of a given set of revisions. A revision matches another if all the selected fields (description, author, branch, date, files, phase, parents, substate, user, summary and/or metadata) match the corresponding values of those fields on the source revision. By default this keyword looks for revisions that whose metadata match (description, author and date) making it ideal to look for duplicate revisions. matching takes 2 arguments (the second being optional): 1.- rev: a revset represeting a _single_ revision (e.g. tip, ., p1(.), etc) 2.- [field(s) to match]: an optional string containing the field or fields (separated by spaces) to match. Valid fields are most regular context fields and some special fields: * regular fields: - description, author, branch, date, files, phase, parents, substate, user. Note that author and user are synonyms. * special fields: summary, metadata. - summary: matches the first line of the description. - metatadata: It is equivalent to matching 'description user date' (i.e. it matches the main metadata fields). Examples: 1.- Look for revisions with the same metadata (author, description and date) as the 11th revision: hg log -r "matching(11)" 2.- Look for revisions with the same description as the 11th revision: hg log -r "matching(11, description)" 3.- Look for revisions with the same 'summary' (i.e. same first line on their description) as the 11th revision: hg log -r "matching(11, summary)" 4.- Look for revisions with the same author as the current revision: hg log -r "matching(., author)" You could use 'user' rather than 'author' to get the same result. 5.- Look for revisions with the same description _AND_ author as the tip of the repository: hg log -r "matching(tip, 'author description')" 6.- Look for revisions touching the same files as the parent of the tip of the repository hg log -r "matching(p1(tip), files)" 7.- Look for revisions whose subrepos are on the same state as the tip of the repository or its parent hg log -r "matching(p1(tip):tip, substate)" 8.- Look for revisions whose author and subrepo states both match those of any of the revisions on the stable branch: hg log -r "matching(branch(stable), 'author substate')"
Tue, 10 Apr 2012 23:40:20 -0700 plan9: add execute permissions to 9diff
Steven Stallion <sstallion@gmail.com> [Tue, 10 Apr 2012 23:40:20 -0700] rev 16401
plan9: add execute permissions to 9diff
Tue, 10 Apr 2012 23:24:12 -0700 transplant: permit merge changesets via --parent
Steven Stallion <sstallion@gmail.com> [Tue, 10 Apr 2012 23:24:12 -0700] rev 16400
transplant: permit merge changesets via --parent This change permits the transplant extension to operate on merge changesets by way of --parent. This is particularly useful for workflows which cherrypick branch merges rather than each commit within a branch.
Thu, 12 Apr 2012 20:22:18 -0500 help: fix indentation on cacert (issue3350)
Matt Mackall <mpm@selenic.com> [Thu, 12 Apr 2012 20:22:18 -0500] rev 16399
help: fix indentation on cacert (issue3350) The parser doesn't really handle nesting, so reorder so the nested bit is last.
Thu, 12 Apr 2012 20:22:18 -0500 stream_in: avoid debug calls when debug is disabled
Matt Mackall <mpm@selenic.com> [Thu, 12 Apr 2012 20:22:18 -0500] rev 16398
stream_in: avoid debug calls when debug is disabled
Thu, 12 Apr 2012 20:22:18 -0500 util: create bytecount array just once
Matt Mackall <mpm@selenic.com> [Thu, 12 Apr 2012 20:22:18 -0500] rev 16397
util: create bytecount array just once This avoids tons of gettext calls on workloads that call bytecount a lot.
Sun, 08 Apr 2012 11:14:56 +0200 revset: avoid set duplication in roots() stable
Patrick Mezard <patrick@mezard.eu> [Sun, 08 Apr 2012 11:14:56 +0200] rev 16396
revset: avoid set duplication in roots()
Sun, 08 Apr 2012 11:13:06 +0200 revset: retrieve a bit less parents in roots() stable
Patrick Mezard <patrick@mezard.eu> [Sun, 08 Apr 2012 11:13:06 +0200] rev 16395
revset: retrieve a bit less parents in roots()
Sun, 08 Apr 2012 11:11:30 +0200 revset: do not ignore input revisions in roots() stable
Patrick Mezard <patrick@mezard.eu> [Sun, 08 Apr 2012 11:11:30 +0200] rev 16394
revset: do not ignore input revisions in roots() 0329d3b12d8e is also partially reverted to use the 'narrow' parameter again and make less changesets parents lookups.
Tue, 10 Apr 2012 16:53:29 -0500 util.h: more Python 2.4 fixes
Matt Mackall <mpm@selenic.com> [Tue, 10 Apr 2012 16:53:29 -0500] rev 16393
util.h: more Python 2.4 fixes
Mon, 09 Apr 2012 13:48:45 -0700 dispatch: add support for statprof as a profiler
Bryan O'Sullivan <bryano@fb.com> [Mon, 09 Apr 2012 13:48:45 -0700] rev 16392
dispatch: add support for statprof as a profiler This can be selected using the config variable profiling.type or the environment variable HGPROF ("ls" for the default, "stat" for statprof). The only tuneable is the frequency, profiling.freq, which defaults to 1000 Hz. If statprof is not available, a warning is printed.
Mon, 09 Apr 2012 14:36:16 -0700 ui: optionally quiesce ssl verification warnings on python 2.5
Steven Stallion <sstallion@gmail.com> [Mon, 09 Apr 2012 14:36:16 -0700] rev 16391
ui: optionally quiesce ssl verification warnings on python 2.5 Some platforms, notably Plan 9 from Bell Labs are stuck on older releases of Python. Due to restrictions in the platform, it is not possible to backport the SSL library to the existing Python port. This patch permits the UI to quiesce SSL verification warnings by adding a configuration entry named reportoldssl to ui.
Mon, 09 Apr 2012 22:16:26 -0700 scmutil: speed up revrange
Bryan O'Sullivan <bryano@fb.com> [Mon, 09 Apr 2012 22:16:26 -0700] rev 16390
scmutil: speed up revrange This improves the performance of "hg log -l1" from 0.21 seconds to 0.07 on a Linux kernel tree. Ideally we could use xrange instead of range on the most common path, and thus avoid a ton of allocation, but xrange doesn't support slice-based indexing.
Tue, 10 Apr 2012 12:49:12 -0500 graft: add --dry-run support (issue3362)
Matt Mackall <mpm@selenic.com> [Tue, 10 Apr 2012 12:49:12 -0500] rev 16389
graft: add --dry-run support (issue3362)
Fri, 06 Apr 2012 16:18:33 +0300 repair: allow giving strip backup a different name
Idan Kamara <idankk86@gmail.com> [Fri, 06 Apr 2012 16:18:33 +0300] rev 16388
repair: allow giving strip backup a different name So the user can differentiate amend backups from the rest.
Tue, 10 Apr 2012 12:07:18 -0500 encoding: add fast-path for ASCII lowercase
Matt Mackall <mpm@selenic.com> [Tue, 10 Apr 2012 12:07:18 -0500] rev 16387
encoding: add fast-path for ASCII lowercase
Tue, 10 Apr 2012 12:07:16 -0500 perf: add case collision auditor perf
Matt Mackall <mpm@selenic.com> [Tue, 10 Apr 2012 12:07:16 -0500] rev 16386
perf: add case collision auditor perf
Tue, 10 Apr 2012 12:07:14 -0500 util.h: unify some common platform tweaks
Matt Mackall <mpm@selenic.com> [Tue, 10 Apr 2012 12:07:14 -0500] rev 16385
util.h: unify some common platform tweaks
Tue, 10 Apr 2012 12:07:09 -0500 util.h: move Py_ssize_t bits from mpatch.c
Matt Mackall <mpm@selenic.com> [Tue, 10 Apr 2012 12:07:09 -0500] rev 16384
util.h: move Py_ssize_t bits from mpatch.c
Sun, 08 Apr 2012 12:43:41 -0700 plan9: initial support for plan 9 from bell labs
Steven Stallion <sstallion@gmail.com> [Sun, 08 Apr 2012 12:43:41 -0700] rev 16383
plan9: initial support for plan 9 from bell labs This patch contains support for Plan 9 from Bell Labs. A README is provided in contrib/plan9 which describes the port in greater detail. A new extension is also provided named factotum which permits the factotum(4) authentication agent to provide credentials for HTTP repositories. This extension is also applicable to other POSIX platforms which make use of Plan 9 from User Space (aka plan9ports).
Sun, 08 Apr 2012 22:17:51 -0500 util.h: add a typedef for Py_ssize_t with Python 2.4
Matt Mackall <mpm@selenic.com> [Sun, 08 Apr 2012 22:17:51 -0500] rev 16382
util.h: add a typedef for Py_ssize_t with Python 2.4
Sun, 08 Apr 2012 12:38:26 -0500 log: bypass file scan part of fastpath when no files
Matt Mackall <mpm@selenic.com> [Sun, 08 Apr 2012 12:38:26 -0500] rev 16381
log: bypass file scan part of fastpath when no files This avoids loading dirstate parents, looking up p1 rev, and loading p1 manifest to match against an empty matcher.
Sun, 08 Apr 2012 12:38:24 -0500 cmdutil: use context instead of lookup
Matt Mackall <mpm@selenic.com> [Sun, 08 Apr 2012 12:38:24 -0500] rev 16380
cmdutil: use context instead of lookup
Sun, 08 Apr 2012 12:38:23 -0500 scmutil: use context instead of lookup
Matt Mackall <mpm@selenic.com> [Sun, 08 Apr 2012 12:38:23 -0500] rev 16379
scmutil: use context instead of lookup
Sun, 08 Apr 2012 12:38:10 -0500 localrepo: lookup now goes through context
Matt Mackall <mpm@selenic.com> [Sun, 08 Apr 2012 12:38:10 -0500] rev 16378
localrepo: lookup now goes through context
Sun, 08 Apr 2012 12:38:08 -0500 context: use rev for changelog lookup
Matt Mackall <mpm@selenic.com> [Sun, 08 Apr 2012 12:38:08 -0500] rev 16377
context: use rev for changelog lookup Faster when we're doing numeric scanning
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
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 +30000 tip