Tue, 20 Sep 2011 20:19:48 +0200 hbisect.get: use simpler code with repo.set(), fix 'pruned' set
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Tue, 20 Sep 2011 20:19:48 +0200] rev 15146
hbisect.get: use simpler code with repo.set(), fix 'pruned' set Use repo.set() wherever possible, instead of locally trying to reproduce complex graph computations. 'pruned' now means 'all csets that will no longer be visited by the bisection'. The change is done is this very patch instead of its own dedicated one becasue the code changes all over the place, and the previous 'pruned' code was totally rewritten by the cleanup, so it was easier to just change the behavior at the same time. The previous series went in too fast for this cleanup pass to be included, so here it is. ;-) Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed, 21 Sep 2011 13:00:48 -0500 help: use RST to format option lists
Matt Mackall <mpm@selenic.com> [Wed, 21 Sep 2011 13:00:48 -0500] rev 15145
help: use RST to format option lists
Wed, 21 Sep 2011 13:00:47 -0500 minirst: fix column handling for simple tables
Matt Mackall <mpm@selenic.com> [Wed, 21 Sep 2011 13:00:47 -0500] rev 15144
minirst: fix column handling for simple tables
Wed, 21 Sep 2011 13:00:46 -0500 encoding: add getcols to extract substrings based on column width
Matt Mackall <mpm@selenic.com> [Wed, 21 Sep 2011 13:00:46 -0500] rev 15143
encoding: add getcols to extract substrings based on column width
Wed, 21 Sep 2011 13:00:41 -0500 encoding: colwidth input is in the local encoding
Matt Mackall <mpm@selenic.com> [Wed, 21 Sep 2011 13:00:41 -0500] rev 15142
encoding: colwidth input is in the local encoding
Mon, 19 Sep 2011 15:58:03 -0700 mdiff: speed up showfunc for large diffs
Brodie Rao <brodie@bitheap.org> [Mon, 19 Sep 2011 15:58:03 -0700] rev 15141
mdiff: speed up showfunc for large diffs This addresses the following issues with showfunc: - Silly usage of regular expressions. - Doing str.rstrip() needlessly in an inner loop. - Doing catastrophic backtracking when trying to find a function line. Finding function text is now at worst O(n lines in the old file), and at best close to O(n hunks). Given a diff like this[1]: src/main/antlr3/uk/ac/cam/ch/wwmm/pregenerated/ChemicalChunker.g | 4 +- src/main/java/uk/ac/cam/ch/wwmm/pregenerated/ChemicalChunkerLexer.java | 2 +- src/main/java/uk/ac/cam/ch/wwmm/pregenerated/ChemicalChunkerParser.java | 29189 +++++---- 3 files changed, 14741 insertions(+), 14454 deletions(-) [1]: https://bitbucket.org/wwmm/chemicaltagger/changeset/d2bfbaecd4fc/raw Without this change, hg log --stat --config diff.showfunc=1 takes an absurdly long time to complete: CallCount Recursive Total(ms) Inline(ms) module:lineno(function) 32813 0 80.3546 40.6086 mercurial.mdiff:160(yieldhunk) +65062746 0 25.7227 25.7227 +<method 'match' of '_sre.SRE_Pattern' objects> +65062746 0 14.0221 14.0221 +<method 'rstrip' of 'str' objects> +1809 0 0.0009 0.0009 +mercurial.mdiff:148(contextend) +1809 0 0.0003 0.0003 +<len> 65062746 0 25.7227 25.7227 <method 'match' of '_sre.SRE_Pattern' objects> 65062763 0 14.0221 14.0221 <method 'rstrip' of 'str' objects> 543 0 0.1631 0.1631 <zlib.decompress> 3 0 0.0505 0.0505 <mercurial.bdiff.blocks> 31007 0 80.4564 0.0477 mercurial.mdiff:147(_unidiff) +32813 0 80.3546 40.6086 +mercurial.mdiff:160(yieldhunk) +3 0 0.0505 0.0505 +<mercurial.bdiff.blocks> +3618 0 0.0022 0.0022 +mercurial.mdiff:154(contextstart) +5427 0 0.0013 0.0013 +<len> +3 0 0.0001 0.0000 +re:188(compile) 1 0 80.8381 0.0322 mercurial.patch:1777(diffstatdata) +107499 0 0.0235 0.0235 +<method 'startswith' of 'str' objects> +31014 0 80.7820 0.0071 +mercurial.util:1284(iterlines) +3 0 0.0000 0.0000 +<method 'search' of '_sre.SRE_Pattern' objects> +4 0 0.0000 0.0000 +mercurial.patch:1783(addresult) +3 0 0.0000 0.0000 +<method 'group' of '_sre.SRE_Match' objects> 6 0 0.0444 0.0283 mercurial.mdiff:12(splitnewlines) +6 0 0.0160 0.0160 +<method 'split' of 'str' objects> 32 0 0.0246 0.0246 <method 'update' of '_hashlib.HASH' objects> 11 0 0.0236 0.0236 <method 'read' of 'file' objects> Time: real 80.880 secs (user 80.200+0.000 sys 0.380+0.000) With this change, it's almost as fast as not using showfunc at all: CallCount Recursive Total(ms) Inline(ms) module:lineno(function) 543 0 0.1699 0.1699 <zlib.decompress> 3 0 0.0501 0.0501 <mercurial.bdiff.blocks> 32813 0 0.0415 0.0348 mercurial.mdiff:161(yieldhunk) +70837 0 0.0058 0.0058 +<method 'isalnum' of 'str' objects> +1809 0 0.0006 0.0006 +mercurial.mdiff:148(contextend) +1809 0 0.0002 0.0002 +<len> 1 0 0.4879 0.0310 mercurial.patch:1777(diffstatdata) +107499 0 0.0230 0.0230 +<method 'startswith' of 'str' objects> +31014 0 0.4335 0.0065 +mercurial.util:1284(iterlines) +3 0 0.0000 0.0000 +<method 'search' of '_sre.SRE_Pattern' objects> +4 0 0.0000 0.0000 +mercurial.patch:1783(addresult) +1 0 0.0004 0.0000 +re:188(compile) 32 0 0.0293 0.0293 <method 'update' of '_hashlib.HASH' objects> 6 0 0.0427 0.0279 mercurial.mdiff:12(splitnewlines) +6 0 0.0147 0.0147 +<method 'split' of 'str' objects> 31007 0 0.1169 0.0235 mercurial.mdiff:147(_unidiff) +3 0 0.0501 0.0501 +<mercurial.bdiff.blocks> +32813 0 0.0415 0.0348 +mercurial.mdiff:161(yieldhunk) +3618 0 0.0012 0.0012 +mercurial.mdiff:154(contextstart) +5427 0 0.0006 0.0006 +<len> 107597 0 0.0230 0.0230 <method 'startswith' of 'str' objects> 16 0 0.0213 0.0213 <mercurial.mpatch.patches> 194 0 0.0149 0.0149 <method 'split' of 'str' objects> Time: real 0.530 secs (user 0.450+0.000 sys 0.070+0.000)
Mon, 19 Sep 2011 16:28:44 -0500 revset: add 'l' flag to formatspec for args
Matt Mackall <mpm@selenic.com> [Mon, 19 Sep 2011 16:28:44 -0500] rev 15140
revset: add 'l' flag to formatspec for args This makes it easy to calculate a revset with lists: good = [1, 2, 3] bad = [10, 11, 12] between = repo.set('%ld::%ld', good, bad)
Sun, 18 Sep 2011 23:57:49 +0200 bisect: add some bisection examples, and some log revset.bisect() examples
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 18 Sep 2011 23:57:49 +0200] rev 15139
bisect: add some bisection examples, and some log revset.bisect() examples Add a few examples on how to use bisect: - a few bisection examples Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat, 17 Sep 2011 14:33:20 +0200 revset.bisect: add new 'untested' set to the bisect keyword
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 17 Sep 2011 14:33:20 +0200] rev 15138
revset.bisect: add new 'untested' set to the bisect keyword The 'untested' set is made of changesets that are in the bisection range but for which the status is still unknown, and that can later be used to further decide on the bisection outcome. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat, 17 Sep 2011 17:30:35 +0200 revset.bisect: add new 'pruned' set to the bisect keyword
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 17 Sep 2011 17:30:35 +0200] rev 15137
revset.bisect: add new 'pruned' set to the bisect keyword The 'pruned' set is made of changesets that did participate to the bisection. They are made of - all good changesets - all bad changsets - all skipped changesets, provided they are in the bisection range Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat, 17 Sep 2011 17:33:34 +0200 revset.bisect: add new 'range' set to the bisect keyword
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 17 Sep 2011 17:33:34 +0200] rev 15136
revset.bisect: add new 'range' set to the bisect keyword The 'range' set is made of all changesets that make the bisection range, that is - csets that are ancestors of bad csets and descendants of good csets or - csets that are ancestors of good csets and descendants of bad csets That is, roughly equivalent of: bisect(good)::bisect(bad) | bisect(bad)::bisect(good) Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat, 17 Sep 2011 00:20:45 +0200 revset.bisect: move bisect() code to hbisect.py
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sat, 17 Sep 2011 00:20:45 +0200] rev 15135
revset.bisect: move bisect() code to hbisect.py Computing the ranges of csets in the bisection belongs to the hbisect code. This allows for reusing the status computation from many places, not only the revset code, but also to later display the bisection status of a cset... Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun, 18 Sep 2011 22:54:11 +0200 revset: rename bisected() to bisect()
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 18 Sep 2011 22:54:11 +0200] rev 15134
revset: rename bisected() to bisect() Rename the 'bisected' keyword to simply 'bisect'. Still accept the old name, but no longer advertise it. As discussed with Matt on IRC. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun, 18 Sep 2011 10:07:51 +0200 revset.bisected: remove 'unknown' state
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> [Sun, 18 Sep 2011 10:07:51 +0200] rev 15133
revset.bisected: remove 'unknown' state 'unknown' is not a valid bisect state, so causes a traceback. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon, 19 Sep 2011 16:57:13 +0200 rebase: allow rebase to ancestor (issue3010)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 19 Sep 2011 16:57:13 +0200] rev 15132
rebase: allow rebase to ancestor (issue3010) We only deny rebasing onto direct parent. Thanks to the ancestor argument of merge. the "implementation" of this feature only consist in loosing the check and imply detach when rebasing on ancestor.
Sun, 18 Sep 2011 19:59:33 -0400 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca> [Sun, 18 Sep 2011 19:59:33 -0400] rev 15131
rollback: only restore dirstate and branch when appropriate. If the working dir parent was destroyed by rollback, then the old behaviour is perfectly reasonable: restore dirstate, branch, and bookmarks. That way the working dir moves back to an existing changeset rather than becoming an orphan. But if the working dir parent was unaffected -- say, you updated to an older changeset and then did rollback -- then it's silly to restore dirstate and branch. So don't do that. Leave the status of the working dir alone. (But always restore bookmarks, because that file refers to changeset IDs that may have been destroyed.)
Fri, 16 Sep 2011 21:38:06 -0400 rollback: refactor for readability; cosmetics.
Greg Ward <greg@gerg.ca> [Fri, 16 Sep 2011 21:38:06 -0400] rev 15130
rollback: refactor for readability; cosmetics. - clarify how we parse undo.desc - fix bad grammar in an error message - factor out ui local - rename some local variables - standardize string quoting
Sat, 17 Sep 2011 14:55:55 -0500 help: make optlist local to subfunctions
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:55:55 -0500] rev 15129
help: make optlist local to subfunctions
Sat, 17 Sep 2011 14:50:42 -0500 help: move option list display into subfunctions
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:50:42 -0500] rev 15128
help: move option list display into subfunctions
Sat, 17 Sep 2011 14:46:13 -0500 help: fold header selection into helplist
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:46:13 -0500] rev 15127
help: fold header selection into helplist
Sat, 17 Sep 2011 14:46:00 -0500 help: fold some list help clauses into the helplist function
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:46:00 -0500] rev 15126
help: fold some list help clauses into the helplist function
Sat, 17 Sep 2011 14:17:09 -0500 minirst: end all blocks with newlines
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 14:17:09 -0500] rev 15125
minirst: end all blocks with newlines Formerly RST blocks were formatted without a trailing newline, which wasn't particularly helpful. Now everything that comes back from the formatter has a trailing newline so remove all the extra ones added by users.
Mon, 19 Sep 2011 14:19:26 +0200 convert: rename local variable
Martin Geisler <mg@aragost.com> [Mon, 19 Sep 2011 14:19:26 +0200] rev 15124
convert: rename local variable
Sat, 17 Sep 2011 13:42:11 -0500 minirst: don't choke on empty text
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:42:11 -0500] rev 15123
minirst: don't choke on empty text
Sat, 17 Sep 2011 13:37:50 -0500 minirst: remove some whitespace
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:37:50 -0500] rev 15122
minirst: remove some whitespace
Sat, 17 Sep 2011 13:37:49 -0500 minirst: remove pointless transcoding
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:37:49 -0500] rev 15121
minirst: remove pointless transcoding
Sat, 17 Sep 2011 13:37:47 -0500 tests: fix up help test for new verbose sections
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:37:47 -0500] rev 15120
tests: fix up help test for new verbose sections
Sat, 17 Sep 2011 13:20:10 -0500 status: add some help examples
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:20:10 -0500] rev 15119
status: add some help examples
Sat, 17 Sep 2011 13:08:24 -0500 forget: add help examples
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 13:08:24 -0500] rev 15118
forget: add help examples
Sat, 17 Sep 2011 12:34:47 -0500 revsets: add first alias for last
Matt Mackall <mpm@selenic.com> [Sat, 17 Sep 2011 12:34:47 -0500] rev 15117
revsets: add first alias for last
Fri, 16 Sep 2011 22:57:47 -0500 revset: add default of 1 to limit and last functions
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 22:57:47 -0500] rev 15116
revset: add default of 1 to limit and last functions
Fri, 16 Sep 2011 17:53:58 -0500 remove: suggest forget to undo adds
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 17:53:58 -0500] rev 15115
remove: suggest forget to undo adds
Fri, 16 Sep 2011 17:41:36 -0500 remove: simplify help
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 17:41:36 -0500] rev 15114
remove: simplify help - move the obscure parts into the verbose help - drop confusing references to "remove from repository" / "not remove from history" - add mention of hg forget
Fri, 16 Sep 2011 17:08:18 -0500 import: add help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 17:08:18 -0500] rev 15113
import: add help examples
Fri, 16 Sep 2011 16:52:45 -0500 id: add some help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 16:52:45 -0500] rev 15112
id: add some help examples
Fri, 16 Sep 2011 16:40:27 -0500 export: add help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 16:40:27 -0500] rev 15111
export: add help examples
Fri, 16 Sep 2011 16:39:55 -0500 diff: add help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 16:39:55 -0500] rev 15110
diff: add help examples
Fri, 16 Sep 2011 15:31:21 -0500 archive: add help examples
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 15:31:21 -0500] rev 15109
archive: add help examples
Wed, 14 Sep 2011 22:01:39 -0400 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca> [Wed, 14 Sep 2011 22:01:39 -0400] rev 15108
test-rollback: tinker a bit to make it easier to add more tests.
Thu, 15 Sep 2011 15:03:54 -0400 convert: added bookmarks support in filemap
etienne <etienne.desautels@gmail.com> [Thu, 15 Sep 2011 15:03:54 -0400] rev 15107
convert: added bookmarks support in filemap When using the convert extension from a Mercurial rep. to subset it with filemap, the bookmarks are not copied. I fixed this by calling the base.get_bookmarks() from the filemap getbookmarks() instead of returning an empty dictionary. It should work also for other converters that implement getbookmarks() (like git). I don't see any drawbacks except that the bookmarks are always copied (not necessarily wanted all the times).
Sat, 23 Jul 2011 06:18:18 +0200 util: fix finding of hgexecutable
Simon Heimberg <simohe@besonet.ch> [Sat, 23 Jul 2011 06:18:18 +0200] rev 15106
util: fix finding of hgexecutable The version introduced in 89d9f92f6fdd would for example return thg (thanks to Mads Kiilerich for pointing to this)
Fri, 16 Sep 2011 14:37:57 -0500 log: add a usage note about --removed
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 14:37:57 -0500] rev 15105
log: add a usage note about --removed
Fri, 16 Sep 2011 14:37:56 -0500 log: rearrange the help text a bit
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 14:37:56 -0500] rev 15104
log: rearrange the help text a bit
Fri, 16 Sep 2011 14:37:55 -0500 log: add some usage examples to verbose help
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 14:37:55 -0500] rev 15103
log: add some usage examples to verbose help
Fri, 16 Sep 2011 14:37:53 -0500 minirst: fix container stripping logic
Matt Mackall <mpm@selenic.com> [Fri, 16 Sep 2011 14:37:53 -0500] rev 15102
minirst: fix container stripping logic
Wed, 14 Sep 2011 22:28:27 -0400 share: allow trailing newline on .hg/sharedpath.
Greg Ward <greg@gerg.ca> [Wed, 14 Sep 2011 22:28:27 -0400] rev 15101
share: allow trailing newline on .hg/sharedpath. This is extremely handy for those occasional circumstances where you need to edit .hg/sharedpath manually, since modern Unix text editors make it surprisingly difficult to create a text file with no trailing newline.
Wed, 07 Sep 2011 10:24:26 -0400 contrib: some support for named branches in zsh_completion (issue2988)
Ben Hockey <neonstalwart@gmail.com> [Wed, 07 Sep 2011 10:24:26 -0400] rev 15100
contrib: some support for named branches in zsh_completion (issue2988) named branches were not included for autocompletion in zsh. by adding _hg_branches and calling it from _hg_labels, named branches are now included when autocompleting many commands in zsh. support for completion of hg log -b was also added. there are possibly other cases where support needs to be explicitly added.
Wed, 14 Sep 2011 17:06:33 +0200 test: test for options duplicate with global options
Simon Heimberg <simohe@besonet.ch> [Wed, 14 Sep 2011 17:06:33 +0200] rev 15099
test: test for options duplicate with global options issue2995 should not happen anymore
Wed, 14 Sep 2011 14:37:10 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 14 Sep 2011 14:37:10 -0500] rev 15098
merge with stable
Sun, 11 Sep 2011 21:21:58 -0400 rollback: improve readability; clarify that the return value is an int.
Greg Ward <greg-hg@gerg.ca> [Sun, 11 Sep 2011 21:21:58 -0400] rev 15097
rollback: improve readability; clarify that the return value is an int.
Mon, 22 Aug 2011 22:50:52 +0200 demandimport: determine at load time if __import__ has level argument
Simon Heimberg <simohe@besonet.ch> [Mon, 22 Aug 2011 22:50:52 +0200] rev 15096
demandimport: determine at load time if __import__ has level argument
Tue, 13 Sep 2011 17:01:07 -0500 win32: quietly ignore missing CreateHardLinkA for Wine stable
Matt Mackall <mpm@selenic.com> [Tue, 13 Sep 2011 17:01:07 -0500] rev 15095
win32: quietly ignore missing CreateHardLinkA for Wine
Thu, 08 Sep 2011 11:34:59 +0100 osutil: avoid accidentally destroying the True object in isgui (issue2937) stable
Steve Streeting <steve@stevestreeting.com> [Thu, 08 Sep 2011 11:34:59 +0100] rev 15094
osutil: avoid accidentally destroying the True object in isgui (issue2937) Needed to use 'Py_RETURN_TRUE' instead of 'return Py_True' to avoid reference count errors which would randomly crash the Python executable during merge. This only happened when you had something configured in merge-tools and the merge was large enough.
Wed, 14 Sep 2011 13:57:56 +0200 merge with stable
Sune Foldager <cryo@cyanite.org> [Wed, 14 Sep 2011 13:57:56 +0200] rev 15093
merge with stable
Wed, 14 Sep 2011 13:57:31 +0200 merge
Sune Foldager <cryo@cyanite.org> [Wed, 14 Sep 2011 13:57:31 +0200] rev 15092
merge
Wed, 14 Sep 2011 13:51:50 +0200 bundlerepo: add argument check before unlink stable
Sune Foldager <cryo@cyanite.org> [Wed, 14 Sep 2011 13:51:50 +0200] rev 15091
bundlerepo: add argument check before unlink The default argument value of None, for bundlename, would cause an exception. Callers currently pass an empty string, thus dodging this problem.
Mon, 12 Sep 2011 09:20:31 -0700 test-setdiscovery: allow for leading space in output of wc
Lee Cantey <lcantey@gmail.com> [Mon, 12 Sep 2011 09:20:31 -0700] rev 15090
test-setdiscovery: allow for leading space in output of wc
Mon, 12 Sep 2011 23:02:45 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 12 Sep 2011 23:02:45 -0500] rev 15089
merge with stable
Sun, 11 Sep 2011 14:42:30 +0200 ui: write traceback to self.ferr stable
Simon Heimberg <simohe@besonet.ch> [Sun, 11 Sep 2011 14:42:30 +0200] rev 15088
ui: write traceback to self.ferr
Sun, 11 Sep 2011 18:49:54 +0200 mq: split up overly long line
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 11 Sep 2011 18:49:54 +0200] rev 15087
mq: split up overly long line
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 +30000 tip