- May 29, 2015
-
-
Matt Harbison authored
This was implied in issue3486, which specifically asked for subrepo support in lfconvert. Now that lfconvert uses the convert extension internally when going to normal files, the issue is half fixed. But now even non largefile repos benefit when other transformations are needed. Supporting a full subrepo tree conversion from a single command doesn't seem reasonable, given the number of options that can be provided, and the transformations that would need to occur when entering a subrepo (consider 'filemap' paths). Instead, this allows the user to incrementally convert each hg subrepo from bottom up like so: # so convert knows the dest type when it sees a non empty dest dir $ hg init converted $ hg convert orig/sub1 converted/sub1 $ hg convert orig/sub2 converted/sub2 $ hg convert orig converted This allows different options to be applied to different subrepos more readily. It assumes the shamap is in the default location in each converted subrepo for simplicity. It also allows for a subrepo to be cloned into place, in case _it_ doesn't need a conversion. I was able to convert away from using largefiles/bfiles in several subrepos with this mechanism.
-
- Jun 05, 2015
-
-
Laurent Charignon authored
Before this patch, when editing a hunk, if the editor was exiting with a non- zero status the crecord session would be aborted. This patch makes crecord handle the failure and goes back to the state before the failed edition. We use the new error reporting mechanism introduced in the previous patch to notify the user of the issue.
-
Laurent Charignon authored
Before this patch, there was no way to report errors in the crecord ui. This patch introduces a new variable errorstr. If set, its content replaces the top banner displayed in crecord until a key is pressed.
-
Laurent Charignon authored
This is useful to reuse the logic to implement the continuation of the crecord session if the user edits a hunk and the editor exits with a non-zero status.
-
- Jun 11, 2015
-
-
Pierre-Yves David authored
Using smartset is better because we can do more optimisation on it. So we are marking the faulty spot for later processing.
-
Pierre-Yves David authored
Sets have non-defined order and this should break stuff, but as we are lucky fullreposet is also broken so the result is "not too bad". We should fix it anyway, but it is too much for my current plate.
-
Pierre-Yves David authored
I do not have time to fix all this now, let's mark it for later.
-
Pierre-Yves David authored
You will be aligned.
-
Pierre-Yves David authored
As 'cs' is empty as the time of the conditional, we can just return an empty 'baseset' and create the variable later.
-
Pierre-Yves David authored
Using smartset's min will be significantly faster when the input set can provided an optimised answer. I do not have time to fix all of them but I'm marking the spot.
-
Pierre-Yves David authored
We should always combine with subset as the left operand (to preserve the order). I do not have time to fix all of them so I'm just marking the spot.
-
Pierre-Yves David authored
I cannot fix all issues in revset because I've got other things to do, but let's write down all the brokenness to help other people reading and fixing.
-
Pierre-Yves David authored
This is usually more useful information than the commit message.
-
- Oct 27, 2014
-
-
Pierre-Yves David authored
We remove revset making use of min and max as this is covered by the variants. We could use variant for roots too, but it is not in the default so keep it here.
-
- Jun 10, 2015
-
-
Pierre-Yves David authored
Now that we have them, let's make use of them.
-
Pierre-Yves David authored
We need more advanced variants in some cases. For example, "The last rev of the sorted version". We introduce a syntax for this: `reverse+last` means `last(reverse(REVSET))`.
-
Pierre-Yves David authored
So far the variants feature was introduced, but not used by default. We now use a set of basic variants by default.
-
Pierre-Yves David authored
We now use an 8 char display for timing (from 10), we add some logic to drop precision if the number grows too large (as we do not care about sub-0 digit in this case). This allow to pack more variants in a single screen.
-
- Oct 27, 2014
-
-
Pierre-Yves David authored
The current benchmarks were only testing the whole iteration. This is suboptimal because some changes are meaningful for things like first result, minimum or sorting. We introduce a "variants" feature that let you systematically add some variants to all revsets tested. A typical variants value would be 'plain,min,last,sort'. When testing 'all()' it will also provide testing for: - all() - min(all()) - last(all()) - sort(sort) and output: plain min last sort 0) 0.034568 0.037857 0.000074 0.034238 1) 0.011358 32% 0.020181 53% 0.000080 108% 0.011405 33% Using revsets (who hit the API) instead of the internal API add some overhead, but the overhead should be the same everywhere so it still allow comparison. This is is more simple to implement and allows comparison with older versions who do not have the same API.
-
- Jun 10, 2015
-
-
Pierre-Yves David authored
If the time difference is more than 5% from the previous run, we'll display relative information. This makes it much simpler to spot performance changes in a sea of benchmarks.
-
Pierre-Yves David authored
We now print the revision number and short hash inline. As a result we drop the crappy list printing.
-
Pierre-Yves David authored
We mostly only care about total time. Dropping this output give us some room to display more useful information (like percentage different) in future changesets.
-
Pierre-Yves David authored
We are no longer testing against system mercurial for quite some time.
-
Pierre-Yves David authored
The file doc was saying something, the code was doing something else, the argument validation was doing a third thing. Doc and behavior now comply with the argument defined in the code.
-
Pierre-Yves David authored
We change the output from: revset #0: draft() 0) wall 0.011989 comb 0.010000 user 0.000000 sys 0.010000 (best of 177) 1) wall 0.012226 comb 0.010000 user 0.000000 sys 0.010000 (best of 193) 2) wall 0.011838 comb 0.020000 user 0.000000 sys 0.020000 (best of 208) to: revset #0: draft() wall comb user sys count 0) 0.012028 0.010000 0.000000 0.010000 170 1) 0.012218 0.010000 0.000000 0.010000 157 2) 0.012622 0.010000 0.000000 0.010000 189 This opens the road to more useful output.
-
- Jun 12, 2015
-
-
Augie Fackler authored
-
- Jun 11, 2015
-
-
Pierre-Yves David authored
This avoids an alignment glitch.
-
- Jun 09, 2015
-
-
Pierre-Yves David authored
This will make update of the output easier.
-
Pierre-Yves David authored
We cannot just ask perfrevset to provide debug output because we usually want to compare output from old version of Mercurial that do not support it. So, we are using a regular expression. (/we now have \d problems/).
-
Pierre-Yves David authored
This helps with diagnostics.
-
Pierre-Yves David authored
This is a gratuitous change to make the code easier to look at.
-
- Jun 11, 2015
-
-
Pierre-Yves David authored
For some reason (probably rebase issue, leprechaun or badly resolved .rej) 1635579f9baf contains only half of the emailed patches and do not fix the bug. This patch adds the other half and enable the sweet native computation for real. As expected this provide massive speedup along the board. revset #0: not public() plain first 0) 0.011960 0.010523 1) 0.000465 3% 0.000492 4% revset #1: (tip~1000::) - public() plain first 0) 0.025700 0.025169 1) 0.002864 11% 0.001899 7% revset #2: not public() and branch("default") plain first 0) 0.022842 0.020863 1) 0.011418 49% 0.010948 52% However, it has a less impact (even bad) on first result time in simple situation. This comes from the overhead of building the set and filtering it. This is especially true on my Mercurial repository (used here) where about 1/3 of the changesets are non public and hidden. This could be mitigated by a caching of the set and a better usage of smartset in '_notpublic'. (But this won't happen in this patch because the win is massive everywhere else). revset #0: not public() last 0) 0.000081 1) 0.000493 x6.1 <-- bad impact revset #1: (tip~1000::) - public() last 0) 0.013966 1) 0.002737 19% revset #2: not public() and branch("default") last 0) 0.011021 1) 0.011038 The effect mostly disappear when the number of non-public changesets is small and/or the repo get bigger. Result for Mozilla central: Mozilla revset #0: not public() plain first last 0) 0.092787 0.084094 0.000080 1) 0.000054 0% 0.000083 0% 0.000083 revset #1: (tip~1000::) - public() plain first last 0) 0.215607 0.183996 0.124962 1) 0.031620 14% 0.006616 3% 0.031168 24% revset #2: not public() and branch("default") plain first last 0) 0.092626 0.082687 0.000162 1) 0.000139 0% 0.000165 0% 0.000167
-
- Jun 12, 2015
-
-
Anton Shestakov authored
Some pages, e.g. bookmarks, help and summary don't have a meaningful revision context: they always either show information about tip or about the whole repo (and not about any specific changeset). And error pages can just show hgweb error messages, not related to any repo or changeset. Having a hash in the links worked (even when '{node|short}' resolved to an empty string on error pages), but seeing pages without revision context provide links with hashes is a bit confusing (unless you keep current tip hash in your head at all times) and not consistent with other template styles and other links on the same page: they don't have a hash. Let's just link to '/file', which is equal to '/file/tip'.
-
Anton Shestakov authored
Some pages, e.g. bookmarks, help and summary don't have a meaningful revision context: they always either show information about tip or about the whole repo (and not about any specific changeset). And error pages can just show hgweb error messages, not related to any repo or changeset. When monoblue style was added in 91b0ada2d94b, however, all graph links had tried to point at some hash, and on such pages as described above it didn't make sense. On error pages '{node|short}' is empty string anyway. Of course, it worked, but seeing such pages without revision context provide links with hashes is a bit confusing (unless you keep current tip hash in your head at all times) and wasn't consistent with other template styles, other pages in monoblue and even other links on the same page. Let's just link to '/graph', which is equal to '/graph/tip'.
-
Anton Shestakov authored
Just a cosmetic markup change, no .css changes required.
-
- Jun 11, 2015
-
-
Pierre-Yves David authored
Progress is now deprecated, using it as an example is suboptimal.
-
- Jun 08, 2015
-
-
Pierre-Yves David authored
Activating it is a absolute no-op now.
-
Pierre-Yves David authored
The default value match the one enforce by the extension, we can remove that logic.
-
- Jun 10, 2015
-
-
Pierre-Yves David authored
This is core feature now.
-
- Jun 08, 2015
-
-
Pierre-Yves David authored
As discussed multiple time during sprint, we should activate progress by default. Having progress bar significantly improve the user experience.
-