- May 01, 2014
-
-
Matt Mackall authored
-
Pierre-Yves David authored
We get rid of lambda in a bunch of other place. This is equivalent and much faster. (no new timing as this is the same change as three other changesets)
-
Matt Mackall authored
Because lchmod doesn't exist on Linux, unzip should be built without lchmod support. A few distros get this wrong.
-
Pierre-Yves David authored
We apply the same speedup as in spanset, getting rid of the useless lambda. (No new timing, as this is the very same change)
-
Pierre-Yves David authored
We apply the same speedup as in spanset, getting rid of the useless lambda. (No new timing, as this is the very same change)
-
Matt Mackall authored
-
- Apr 30, 2014
-
-
Katsunori FUJIWARA authored
-
Wagner Bruna authored
-
- May 01, 2014
-
-
Mads Kiilerich authored
-
Mads Kiilerich authored
When invoked from another directory, the matchers m._cwd will be the absolute path. The code for calculating relative path to .hglf did not consider that and log would fail with weird errors and paths. For now, just don't do any largefile magic when invoked from other directories.
-
Matt Mackall authored
If this test was run from a tarball with no Mercurial repository, it would fail because 'hg manifest' didn't work.
-
- Apr 26, 2014
-
-
Pierre-Yves David authored
Spanset are massively used in revset. First because the initial subset itself is a repo wide spanset. We speed up the __and__ operation by getting rid of a gratuitous lambda call. A more long terms solution would be to: 1. speed up operation between spansets, 2. have a special smartset for `all` revisions. In the mean time, this is a very simple fix that buyback some of the performance regression. Below is performance benchmark for trival `and` operation between two spansets. (Run on an unspecified fairly large repository.) revset tip:0 2.9.2) wall 0.282543 comb 0.280000 user 0.260000 sys 0.020000 (best of 35) before) wall 0.819181 comb 0.820000 user 0.820000 sys 0.000000 (best of 12) after) wall 0.645358 comb 0.650000 user 0.650000 sys 0.000000 (best of 16) Proof of concept implementation of an `all` smartset brings this to 0.10 but it's too invasive for stable.
-
- Apr 30, 2014
-
-
Durham Goode authored
The journal.backupfiles descriptor wasn't being closed. This resulted in hgsubversion test runs having a bagillion descriptors open, which crashed on platforms with low open file limits (like OSX).
-
- Apr 26, 2014
-
-
Pierre-Yves David authored
For consistency with what happen in `__contains__`, we inline the range test into `__len__` too.
-
- Apr 28, 2014
-
-
Pierre-Yves David authored
Calling a function is super expensive in python. We inline the trivial range comparison to get back to more sensible performance on common revset operation. Benchmark result below: Revision mapping: 0) 3f83fc5cfe71 2.9.2 release 1) bcfd44abad93 current @ 2) This revision revset #0: public() 0) wall 0.010890 comb 0.010000 user 0.010000 sys 0.000000 (best of 201) 1) wall 0.012109 comb 0.010000 user 0.010000 sys 0.000000 (best of 199) 2) wall 0.012211 comb 0.020000 user 0.020000 sys 0.000000 (best of 197) revset #1: :10000 and public() 0) wall 0.007141 comb 0.010000 user 0.010000 sys 0.000000 (best of 361) 1) wall 0.014139 comb 0.010000 user 0.010000 sys 0.000000 (best of 186) 2) wall 0.008334 comb 0.010000 user 0.010000 sys 0.000000 (best of 308) revset #2: draft() 0) wall 0.009610 comb 0.010000 user 0.010000 sys 0.000000 (best of 279) 1) wall 0.010942 comb 0.010000 user 0.010000 sys 0.000000 (best of 243) 2) wall 0.011036 comb 0.010000 user 0.010000 sys 0.000000 (best of 239) revset #3: :10000 and draft() 0) wall 0.006852 comb 0.010000 user 0.010000 sys 0.000000 (best of 383) 1) wall 0.014641 comb 0.010000 user 0.010000 sys 0.000000 (best of 183) 2) wall 0.008314 comb 0.010000 user 0.010000 sys 0.000000 (best of 299) We can see this changeset gains back the regression for `and` operation on spanset. We are still a bit slowerfor the `public()` and `draft()`. Predicates not touched by this changeset.
-
- Apr 30, 2014
-
-
Matt Mackall authored
The current situation is a bit of a layering violation as merge-specific knowledge is pushed down to lower layers and leaks merge assumptions into other code paths. Here, we simply silence the warning with a hack. Both the warning and the hack will probably go away in the near future when bid merge is made the default.
-
- Apr 25, 2014
-
-
Pierre-Yves David authored
We want to display the commands, not all arguments of the function. (The old code actually crash, failing to joining a list of lists.)
-
- Apr 28, 2014
-
-
Pierre-Yves David authored
The argument is `x` but the variable tested for filtering is `rev`. `rev` happens to be a revset methods, ... never part of the filtered revs. This method is now using `rev` for everything.
-
- Apr 29, 2014
-
-
Pierre-Yves David authored
Revset calls use to return a list. Graft use to mutate that list. We cannot do this anymore leading to a crash when grafting multiple changeset with a revset. File ".../mercurial/commands.py", line 3117, in graft revs.remove(rev) AttributeError: '_addset' object has no attribute 'remove' We are late in code-freeze so we make the shortest possible fix by turning it back to a list.
-
- Apr 28, 2014
-
-
Greg Hurrell authored
For a Mercurial new-comer, the distinction between `contains(x)`, `file(x)`, and `filelog(x)` in the "revsets" help page may not be obvious. This commit tries to make things more obvious (text based on an explanation from Matt in an FB group thread).
-
- Apr 24, 2014
-
-
Mads Kiilerich authored
8a9e0b523d2d made discovery more helpful - too helpful for some extreme use cases. Instead, we arbitrarily limit the list it at 4 and add 'or more'.
-
- Apr 23, 2014
-
-
Julien Cristau authored
The documentation says we exit 1 if we have nothing to do, so avoid breaking that contract when we're passed an empty revset. This was changed in http://www.selenic.com/hg/rev/a259f7b488ab to improve the error message; keep the improved message, just not the abort.
-
- Apr 26, 2014
-
-
Matt Harbison authored
-
Yuya Nishihara authored
Command server is designed to use the channel protocol even if the server process is accessible to tty, whereas vanilla hg should be able to read password from tty in that case. So it isn't enough to swap sys.stdin: # works only if the server process is detached from the console sys.stdin = self.fin getpass.getpass('') sys.stdin = oldin or test isatty: # vanilla hg can't talk to tty if stdin is redirected if self._isatty(self.fin): return getpass.getpass('') else: ... Since ui.nontty flag is undocumented and command-server channels don't provide isatty(), this change won't affect the other uses of ui._isatty(). issue3161 also suggests to provide some context of messages. I think it can be implemented by using the generic templating function.
-
- Apr 29, 2014
-
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
Yuya Nishihara authored
'pat' was renamed to 'regex' in 9d28fd795215.
-
- Apr 27, 2014
-
-
Yuya Nishihara authored
It wouldn't raise exception without this change, but _bufferstates was wrong because of missing _bufferstates.pop() in colorui.popbuffer().
-
- Apr 23, 2014
-
-
Javi Merino authored
The current version of excanvas is unknown. Substitute it with the latest version from the excanvas website: http://code.google.com/p/explorercanvas/ Instead of using the "compiled" version, just use the readable one.
-
Mads Kiilerich authored
Including the missing test coverage that would have caught it.
-
- Apr 21, 2014
-
-
Pierre-Yves David authored
We make sure any exceptions raised during the whole span of handling bundle2 processing are decorated. This let us catch exceptions raised by hooks prior to transaction commit.
-
- Apr 22, 2014
-
-
Pierre-Yves David authored
Same drill again. We catch the PushRaced error, check if it cames from a bundle2 processing, if so we turn it into a bundle2 with a part transporting error information to be reraised client side.
-
Pierre-Yves David authored
Errors with no explanations makes my uncle Bob sad.
-
Pierre-Yves David authored
If the heads on the server differ from the ones reported seen by the client at bundle time, we raise a PushRaced exception. However, the part raising the exception was broken. To fix it, we move the PushRaced class in the error module so it can be accessible everywhere without an import cycle. A test is also added to prevent regression.
-
- Apr 21, 2014
-
-
Pierre-Yves David authored
Same as for Abort error, we catch the error, encode it into a bundle2 reply (expected by the client) and stream this reply. The client processing of the error will raise the exception again.
-
- Apr 22, 2014
-
-
Pierre-Yves David authored
When doing local push, UnknownPartError from the server will be raised directly to the client. We need to catch them too.
-
Pierre-Yves David authored
We narrow the exception catching while pulling.
-
Pierre-Yves David authored
We narrow the exception catching while unbundling the push reply.
-
Pierre-Yves David authored
KeyError is very generic, we need something more specific for proper error handling.
-