Tue, 26 May 2015 23:06:17 -0700 bundle2: hide bundle2 stream debug under a config flag
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 23:06:17 -0700] rev 25336
bundle2: hide bundle2 stream debug under a config flag The old output is very verbose and unsuitable for general debug level. It is however very useful for debugging bundle2 generation or consumption issues. All this verbose ouput is hidden under a 'devel.bundle2.debug' flag.
Tue, 26 May 2015 23:47:19 -0700 bundle2: add generic debug output regarding processed interruption
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 23:47:19 -0700] rev 25335
bundle2: add generic debug output regarding processed interruption If we are about to hide the detailed debug output, we need some generic debug message to replace it in a concise way.
Tue, 26 May 2015 23:58:38 -0700 bundle2: add generic debug output regarding processed part payload
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 23:58:38 -0700] rev 25334
bundle2: add generic debug output regarding processed part payload If we are about to hide the detailed debug output, we need some generic debug message to replace it in a concise way.
Tue, 26 May 2015 23:36:31 -0700 bundle2: add generic debug output regarding processed part
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 23:36:31 -0700] rev 25333
bundle2: add generic debug output regarding processed part If we are about to hide the detailed debug output, we need some generic debug message to replace it.
Wed, 27 May 2015 00:02:49 -0700 bundle2: add generic debug output at the end of bundle processing
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 00:02:49 -0700] rev 25332
bundle2: add generic debug output at the end of bundle processing If we are about to hide the detailed debug output, we need some generic debug message to replace it in a concise way.
Wed, 27 May 2015 00:00:35 -0700 bundle2: add generic debug output regarding processed bundle
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 00:00:35 -0700] rev 25331
bundle2: add generic debug output regarding processed bundle If we are about to hide the detailed debug output, we need some generic debug message to replace it in a concise way.
Thu, 28 May 2015 20:30:20 -0700 histedit: fix keep during --continue stable
Durham Goode <durham@fb.com> [Thu, 28 May 2015 20:30:20 -0700] rev 25330
histedit: fix keep during --continue The --keep option was being serialized to the state file, but it wasn't actually being used when running a histedit --continue. This fixes that.
Thu, 28 May 2015 16:42:21 -0400 dispatch: disable demandimport for the --debugger option
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 28 May 2015 16:42:21 -0400] rev 25329
dispatch: disable demandimport for the --debugger option Something in Python 2.7.9 or so broke the --debugger option with ui.debugger = ipdb. I get the traceback below. There is some apparent confusion with demandimport. This should be disabled anyway for the --debugger option. The debugger must be imported right away, before any other dispatch. There's no benefit in delaying the debugger import. This patch uses the demandimport.deactivated() context manager. Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 121, in _runcatch debugmod = __import__(debugger) File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 115, in _demandimport return _hgextimport(_import, name, globals, locals, fromlist, level) File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 47, in _hgextimport return importfunc(name, globals, *args) File "/usr/lib/python2.7/dist-packages/ipdb/__init__.py", line 16, in <module> from ipdb.__main__ import set_trace, post_mortem, pm, run, runcall, runeval, launch_ipdb_on_exception File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 134, in _demandimport mod = _hgextimport(_origimport, name, globals, locals) File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 47, in _hgextimport return importfunc(name, globals, *args) File "/usr/lib/python2.7/dist-packages/ipdb/__main__.py", line 29, in <module> if IPython.__version__ > '0.10.2': File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 106, in __getattribute__ self._load() File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 78, in _load mod = _hgextimport(_import, head, globals, locals, None, level) File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 47, in _hgextimport return importfunc(name, globals, *args) File "/usr/lib/python2.7/dist-packages/IPython/__init__.py", line 45, in <module> from .config.loader import Config File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 132, in _demandimport return _origimport(name, globals, locals, fromlist, level) File "/usr/lib/python2.7/dist-packages/IPython/config/__init__.py", line 16, in <module> from .application import * File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 115, in _demandimport return _hgextimport(_import, name, globals, locals, fromlist, level) File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 47, in _hgextimport return importfunc(name, globals, *args) File "/usr/lib/python2.7/dist-packages/IPython/config/application.py", line 30, in <module> from IPython.external.decorator import decorator File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 134, in _demandimport mod = _hgextimport(_origimport, name, globals, locals) File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 47, in _hgextimport return importfunc(name, globals, *args) File "/usr/lib/python2.7/dist-packages/IPython/external/decorator/__init__.py", line 2, in <module> from decorator import * File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 115, in _demandimport return _hgextimport(_import, name, globals, locals, fromlist, level) File "/usr/lib/python2.7/dist-packages/mercurial/demandimport.py", line 47, in _hgextimport return importfunc(name, globals, *args) File "/usr/lib/python2.7/dist-packages/decorator.py", line 240, in <module> 'ContextManager', (_GeneratorContextManager,), dict(__call__=__call__))
Thu, 28 May 2015 16:42:04 -0400 hooks: replace if-try-finally with a "with" statement
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 28 May 2015 16:42:04 -0400] rev 25328
hooks: replace if-try-finally with a "with" statement This seems like a textbook case for the new demandimport.deactivated context manager: check if something must be done, do it, and cleanup at the end regardless of exceptions. The diff isn't as bad as it seems. It's just all the whitespace changes due to needing an extra level of indentation. It looks cleaner with `hg diff -w`.
Thu, 28 May 2015 16:11:26 -0400 demandimport: define a `deactivated` context manager
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 28 May 2015 16:11:26 -0400] rev 25327
demandimport: define a `deactivated` context manager This can be useful for use in "with" blocks for temporarily disabling demandimport.
Thu, 28 May 2015 14:14:11 -0400 largefiles: drop the unused lfcommands._addchangeset()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 28 May 2015 14:14:11 -0400] rev 25326
largefiles: drop the unused lfcommands._addchangeset()
Thu, 28 May 2015 13:34:37 -0400 largefiles: use the convert extension for 'lfconvert --to-normal'
Matt Harbison <matt_harbison@yahoo.com> [Thu, 28 May 2015 13:34:37 -0400] rev 25325
largefiles: use the convert extension for 'lfconvert --to-normal' The logic in the convert extension is more advanced, supporting extra features like converting revision IDs in 'extras' (e.g. 'amend_source'), supports updating hashes in commit messages, and outputs an SHA map file. Rather than try to duplicate all of that, just use the existing code. Even though the convert extension supports user supplied options like filemap, etc, those features aren't available on the lfconvert interface. Therefore, it is safe to use the filemap mechanism (in memory) to handle the standin -> file rename. The convert extension handles the destination locking for this path. There was a comment in test-lfconvert.t about the hash on rev 5 being different because it was doing a better job than "hg remove" + "hg merge" + "hg commit". It isn't clear to me what was happening or why, but now the hashes match the original repo exactly after a roundtrip, which seems like a good idea. If there really was something beneficial about the previous behavior, perhaps merge can be changed so that everyone benefits. Converting to a largefiles repo still uses the original (limited) lfconvert logic.
Wed, 27 May 2015 00:22:29 -0700 bundle2: add generic debug output regarding generated interruption
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 00:22:29 -0700] rev 25324
bundle2: add generic debug output regarding generated interruption If we are about to hide the detailed debug output, we need some generic debug message to replace it in a concise way.
Wed, 27 May 2015 00:19:16 -0700 bundle2: add generic debug output regarding generated parts
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 00:19:16 -0700] rev 25323
bundle2: add generic debug output regarding generated parts If we are about to hide the detailed debug output, we need some generic debug message to replace it in a concise way.
Wed, 27 May 2015 00:10:30 -0700 bundle2: add generic debug output regarding generated bundle
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 00:10:30 -0700] rev 25322
bundle2: add generic debug output regarding generated bundle If we are about to hide the detailed debug output, we need some generic debug message to replace it in a more compact way.
Wed, 27 May 2015 00:52:01 -0700 bundle2: add debug output for part generation
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 00:52:01 -0700] rev 25321
bundle2: add debug output for part generation The part generation process was lacking a ui object and could not produce debug output. It seems valuable to have some debug output on this part too, especially now that we are planning to be able to hide it in the default --debug output.
Tue, 26 May 2015 23:01:39 -0700 bundle2: handle new line in 'indebug' function
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 23:01:39 -0700] rev 25320
bundle2: handle new line in 'indebug' function Now that we have a prefix, it make sense to assume all output will be on a single line.
Tue, 26 May 2015 20:40:21 -0700 bundle2: prefix all unbundling debug message with 'bundle2-input:'
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 20:40:21 -0700] rev 25319
bundle2: prefix all unbundling debug message with 'bundle2-input:' This make the origin of the message more explicit.
Tue, 26 May 2015 22:48:52 -0700 bundle2: introduce a specific function for debug messages while unbundling
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 22:48:52 -0700] rev 25318
bundle2: introduce a specific function for debug messages while unbundling The bundling process is very verbose, we would like to be able to hide such output behind a configuration flag and have it more explicitly referencing bundle2. The first step is to gather all these messages in a dedicated function.
Thu, 28 May 2015 10:00:22 -0700 bundle2: add an informative comment to the capability dict
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 28 May 2015 10:00:22 -0700] rev 25317
bundle2: add an informative comment to the capability dict It is fairly easy to get confused by capabilities "missing" from this dict. We make it clear the dict is not the whole story.
Thu, 28 May 2015 16:09:42 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 28 May 2015 16:09:42 -0500] rev 25316
merge with stable
Tue, 26 May 2015 23:02:19 -0700 bundle2: handle new line in 'outdebug' function
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 23:02:19 -0700] rev 25315
bundle2: handle new line in 'outdebug' function Now that we have a prefix, it make sense to assume all output will be on a single line.
Tue, 26 May 2015 22:57:35 -0700 bundle2: prefix all bundling debug messages with 'bundle2-ouput:'
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 22:57:35 -0700] rev 25314
bundle2: prefix all bundling debug messages with 'bundle2-ouput:' This makes the origin of the message more explicit.
Tue, 26 May 2015 22:49:03 -0700 bundle2: introduce a specific function for bundling debug message
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 26 May 2015 22:49:03 -0700] rev 25313
bundle2: introduce a specific function for bundling debug message The bundling process is very verbose, we would like to be able to hide such output behind a configuration flag and have it more explicitly referencing bundle2. The first step is to gather all these messages in a dedicated function. The same gathering will be later do for debug message issue by unbundling.
Wed, 27 May 2015 17:01:43 -0700 parsers: simplify the code computing the phases
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 17:01:43 -0700] rev 25312
parsers: simplify the code computing the phases We recently simplified the code computing the heads of a repo. This patch uses the same simplification for phase computation. We use index_get_parents instead of replicating its code.
Wed, 27 May 2015 17:00:28 -0700 parsers: move index_get_parents's declaration higher
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 17:00:28 -0700] rev 25311
parsers: move index_get_parents's declaration higher index_get_parents needs to be used in the phase computation code so we need to move its declaration higher to be able to call it. It cannot be moved any higher than that so we won't have any more patch doing the same thing.
Wed, 27 May 2015 15:49:24 -0700 record: add an operation arguments to customize recording ui
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 15:49:24 -0700] rev 25310
record: add an operation arguments to customize recording ui This patch is part of a series of patches to change the recording ui to reflect the operation currently running (commit, shelve, revert ...). This patch adds a new argument to the recording function to reflect in the UI what operation we are running.
Sun, 26 Apr 2015 18:13:48 +0900 revset: reduce nesting of chained 'or' operations (issue4624)
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 18:13:48 +0900] rev 25309
revset: reduce nesting of chained 'or' operations (issue4624) This reduces the stack depth of chained 'or' operations: - from O(n) to O(1) at the parsing, alias expansion and optimization phases - from O(n) to O(log(n)) at the evaluation phase simplifyinfixops() must be applied immediately after the parsing phase. Otherwise, alias expansion would crash by "maximum recursion depth exceeded" error. Test cases use 'x:y|y:z' instead of 'x|y' because I'm planning to optimize 'x|y' in a different way. Benchmarks: 0) 605b1d32c1c0 1) this patch revset #0: 0 + 1 + 2 + ... + 200 0) wall 0.026347 comb 0.030000 user 0.030000 sys 0.000000 (best of 101) 1) wall 0.023858 comb 0.030000 user 0.030000 sys 0.000000 (best of 112) revset #1: 0 + 1 + 2 + ... + 1000 0) maximum recursion depth exceeded 1) wall 0.483341 comb 0.480000 user 0.480000 sys 0.000000 (best of 20) revset #2: sort(0 + 1 + 2 + ... + 200) 0) wall 0.013404 comb 0.010000 user 0.010000 sys 0.000000 (best of 196) 1) wall 0.006814 comb 0.010000 user 0.010000 sys 0.000000 (best of 375) revset #3: sort(0 + 1 + 2 + ... + 1000) 0) maximum recursion depth exceeded 1) wall 0.035240 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
Sun, 24 May 2015 14:10:52 +0900 revset: add helper to build balanced addsets from chained 'or' operations
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 14:10:52 +0900] rev 25308
revset: add helper to build balanced addsets from chained 'or' operations This function will be used by revset.orset() and scmutil.revrange() to reduce the stack depth from O(n) to O(log(n)). We've bikeshed the interface of this function, but we couldn't come to an agreement. So we decided to attempt to make it move forward. marmoute: - new factory function isn't necessary for balanced addsets - addset.__init__ can just recurse, should handle "len(subsets) == 2+" yuja: - want to write all "len(subsets) == 0, 1, 2, 3+" cases in the same function - no recursion in __init__ for cosmetic reason: can't return, can't call __init__ directly I've changed it to a private function so that nobody would be tempted to utilize it.
Sun, 26 Apr 2015 18:27:32 +0900 revset: comment that we can't swap 'or' operands by weight
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 18:27:32 +0900] rev 25307
revset: comment that we can't swap 'or' operands by weight Though the original code did nothing, it tried to optimize the calculation order by weight. But we can't simply swap 'ta' and 'tb' because it would change the order of revisions. For future reference, this patch keeps the modified version of the original code as comment.
(0) -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip