- Sep 12, 2014
-
-
Siddharth Agarwal authored
Upcoming patches will add config options for git sources. This patch adds a place to document them.
-
- Aug 24, 2014
-
-
Jordi Gutiérrez Hermoso authored
It's very useful to be able to colourise csets according to their phases. There was no indication anywhere in the docs that this is possible. We use e.g. `changeset.secret = ` instead of `changeset.secret ='none'`, because otherwise this is a BC: it would nullify the effects given to log.changeset label that usually surrounds the changeset.{phase} labels. Specifying the label without any effect instead of 'none' is a true no-op change and purely documentation.
-
- Sep 19, 2014
-
-
Matt Mackall authored
Before, the format was label(labeled text) # single label [label1 label2](labeled text) # multiple Now, it's [labels|labeled text] ..which should make things a bit more clear.
-
- Aug 24, 2014
-
-
Jordi Gutiérrez Hermoso authored
This is a debug option for showing labels. This can be helpful for knowing which labels are available for colouring or to see the output when defining your own templates. A couple of tests are included.
-
Jordi Gutiérrez Hermoso authored
It is a deeply hidden secret that it's possible to colorise so many things with so many different labels. This is an attempt to document this. The text is a bit long, but it seems as short as can be while documenting everything. Perhaps it should be hidden under a --verbose option.
-
- Aug 27, 2014
-
-
Mads Kiilerich authored
-
- Aug 20, 2014
-
-
Jordi Gutiérrez Hermoso authored
The following patch splits up changed lines along tabs (using re.findall), and gives them a "diff.tab" label. This can be used by the color extension for colorising tabs, like it does right now with trailing whitespace. I also provide corresponding tests.
-
- Sep 17, 2014
-
-
Siddharth Agarwal authored
-
- Sep 07, 2014
-
-
Gregory Szorc authored
The existing roots(x - y) revset only considered the most recent 100 revisions. This was a good start. But expanding it to the full history of the repository can dramatically increase execution time and thus constitutes a useful benchmark.
-
- Sep 16, 2014
-
-
Matt Mackall authored
-
- Sep 11, 2014
-
-
Katsunori FUJIWARA authored
Before this patch, "hg qselect" with --pop/--reapply may pop patches unexpectedly, even when all of patches applied before "qselect" are still pushable. Strictly speaking about the condition of this issue: - before "qselect" - there are N applied patches - the index of the guarded patch X in the series is less than N - after "qselect" - X is still guarded, and - all of applied patched are still pushable In the case above, "hg qselect" should keep current status, but it actually tries to pop patches because of X. The index in "the series" should be used to examine "pushable" of a patch by "mq.pushablek()", but the index in "applied patches" is used, and this may cause unexpected examination of guarded patch. To examine "pushable" of already applied patch correctly, this patch uses "mq.applied[i].name": "pushable" is the function introduced by the previous patch, and it returns "mq.pushable(mq.applied[i].name)[0]".
-
Katsunori FUJIWARA authored
Before this patch, "hg qselect" with --pop/--reapply may pop incorrect patches, because the index in "applied patches" is used to pop patches by "mq.pop()", even though the index in "the series" should be used. For example, when the already applied patch becomes guarded and it follows the already guarded (= not yet applied) one, "hg qselect" is aborted, because it tries to pop to guarded one. This patch uses "mq.applied[i - 1].name" to pop to the patch, of which the index in the "applied ones" is "i - 1".
-
Katsunori FUJIWARA authored
Before this patch, "hg qselect --reapply" is aborted when "--verbose" is specified, because "mq.appliedname()" returns "INDEX PATCHNAME" instead of "PATCHNAME" in such case and "mq.push" can't accept the former as the name of patch. This patch uses "mq.applied[i].name" instead of "mq.appliedname(i)" as the name of the patch to be pushed for safety. Now, there is no code path using "mq.appliedname()", and it should be removed to prevent developers from using it in the wrong way like this issue.
-
Katsunori FUJIWARA authored
Before this patch, "hg qselect" may report incorrect numbers for "number of guarded, applied patches has changed", because it examines "pushable" of patches by the index not in "the series" but in "applied patches", even though "mq.pushable()" expects the former. To report correct numbers for changing "number of guarded, applied patches", this patch uses the name of applied patch to examine pushable-ness of it. This patch also changes the result of existing "hg qselect" tests, because they doesn't change pushable-ness of already applied patches. This patch assumes that "hg qselect" focuses on changing pushable-ness only of already applied patches, because: - the report message uses not "previous" (in the series) but "applied" - the logic to pop patches for --pop/--reapply examines pushable-ness only of already applied ones (in fact, there are some incorrect code paths)
-
- Aug 29, 2014
-
-
Yuya Nishihara authored
It isn't necessary because zip(*pieces) returns [] if pieces are empty, and pieces are empty only if lines are empty.
-
- Sep 12, 2014
-
-
Durham Goode authored
The histedit command uses a revset like: (_intlist('1234\x001235')) and merge() Previously the optimizer gave a weight of 1.5 to the _intlist side (1 for the function, 0.5 for the string) which caused it to process the merge() side first. This caused it to evaluate merge against every commit in the repo, which took 2.5 seconds on a large repo. I changed the weight of _intlist to 0, since it's a trivial calculation, which makes it process intlist first, which makes merge apply only to the revs in the list. Which makes the revset take 0.15 seconds now. Cutting off 2.4 seconds off our histedit performance. >From the revset benchmark: revset #25: (_intlist('20000\x0020001')) and merge() 0) obsolete feature not enabled but 54243 markers found! ! wall 0.036767 comb 0.040000 user 0.040000 sys 0.000000 (best of 100) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.000198 comb 0.000000 user 0.000000 sys 0.000000 (best of 9084)
-
Durham Goode authored
Strip executes a revset like this: max(parents(_intlist('1234\x001235')) - _intlist('1234\x001235')) Previously the parents() revset would do 'subset & parents' which iterates over each item in the subset and checks if it's in parents. subset is usually the entire repo (a spanset) so this takes a while. Reversing the parameters to be 'parents & subset' means the operation becomes O(number of parents) instead of O(size of repo). It also means the result gets evaluated immediately (since parents isn't a lazy set), but I think this is a win in most scenarios. This shaves 0.3 seconds off strip (amend/histedit/rebase/etc) for large repositories. revset #0: parents(20000) 0) obsolete feature not enabled but 54243 markers found! ! wall 0.006256 comb 0.010000 user 0.010000 sys 0.000000 (best of 289) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.000391 comb 0.000000 user 0.000000 sys 0.000000 (best of 4323)
-
Durham Goode authored
Previously descendants() would force the provided subset to become a set. In the case of revsets like '(%ld::) - (%ld)' (as used by histedit) this would force the '- (%ld)' set to be evaluated, which produced a set containing every commit in the repo (except %ld). This takes 0.6s on large repos. This changes descendants to trust the subset to implement __contains__ efficiently, which improves the above revset to 0.16s. Shaving 0.4 seconds off of histedit. revset #27: (20000::) - (20000) 0) obsolete feature not enabled but 54243 markers found! ! wall 0.023640 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.019589 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) This commit removes the final revset related perf hotspot from histedit. Combined with the previous two patches, they shave a little over 3 seconds off histedit on large repos.
-
- Sep 16, 2014
-
-
Yuya Nishihara authored
-
Yuya Nishihara authored
-
- Sep 15, 2014
-
-
Mike Edgar authored
The internal commit API was changed in 650b5b6e75ed to expect None from the filectx function when a file is to be deleted, not an IOError. This change keeps synthrepo up-to-date.
-
Steve Borho authored
-
- Aug 31, 2014
-
-
Mads Kiilerich authored
This gives "PPA" functionality where users easily can stay uptodate with latest nightly build.
-
- May 14, 2014
-
-
Mads Kiilerich authored
There is no official CentOS 5 docker template so we use one from saltstack.
-
- Aug 31, 2014
-
-
Mads Kiilerich authored
A moving target is rarely useful.
-
- May 30, 2014
-
-
Mads Kiilerich authored
Simplifies the rpm build process. We will use platform specific rpmbuild directories and will not clean them and will drop the explicit copy to build directory.
-
Mads Kiilerich authored
Docker can be run by ordinary users if they are in the docker group. The build process would however be run as a root user, only protected by the sandboxing. That caused problems with the shared directory where rpmbuild would be picky about building from sources owned by less privileged users and producing files owned by root. Instead, add a build user with the right uid/gid to the image and run the docker process as that user.
-
Mads Kiilerich authored
-
Mads Kiilerich authored
-
- Aug 31, 2014
-
-
Mads Kiilerich authored
Used as rpm _topdir when preparing spec and source and building rpms.
-
- May 14, 2014
-
-
Mads Kiilerich authored
-
- Aug 31, 2014
-
-
Mads Kiilerich authored
-
- Aug 28, 2014
-
-
Katsunori FUJIWARA authored
"diff" allows to embed changes in the target revision into template output, even if the command itself doesn't take "--patch" option Combination of "[committemplate]" configuration and "diff" template function can achieve the feature like issue231 ("option to have diff displayed in commit editor buffer") http://bz.selenic.com/show_bug.cgi?id=231 For example, templating below can be used to add each "diff" output lines "HG: " prefix:: {splitlines(diff) % 'HG: {line}\n'} This patch implements "diff" not as "a template keyword" but as "a template function" to take include/exclude patterns at runtime. It allows to specify target files of command (by -I/-X command line options) and "diff" separately.
-
- Sep 16, 2014
-
-
Matt Mackall authored
-
Matt Mackall authored
-
- Mar 16, 2014
-
-
Matt Mackall authored
-
- Sep 12, 2014
-
-
Matt Mackall authored
This gives convenient Python2 output. Python 3 users will need encoding=bytes.
-
- Sep 15, 2014
-
-
Matt Mackall authored
These commands have generic formatting support but no way to enable it yet. When this feature is more fully developed, this flag will be unhidden.
-
- Sep 12, 2014
-
-
Matt Mackall authored
-
- Sep 15, 2014
-
-
Matt Mackall authored
Sadly, this can't be done with the normal templater like we do with XML due to JSON's inter-record comma rules.
-