Fri, 03 Jul 2015 06:56:03 +0900 run-tests.py: add TESTDIR to PATH if it differs from RUNTESTDIR
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 03 Jul 2015 06:56:03 +0900] rev 25730
run-tests.py: add TESTDIR to PATH if it differs from RUNTESTDIR Before this patch, `RUNTESTDIR` is added to `PATH`, but `TESTDIR` isn't. This doesn't cause any problems, if `run-tests.py` runs in `tests` directory of Mercurial source tree. In this case, `RUNTESTDIR` should be equal to `TESTDIR`. On the other hand, if `run-tests.py` runs in `tests` of third party tools, commands in that directory should be executed with explicit `$TESTDIR/` prefix in `*.t` test scripts. This isn't suitable for the policy "drop explicit $TESTDIR from executables" of Mercurial itself (see 4d2b9b304ad0). BTW, 4d2b9b304ad0 describes that "$TESTDIR is added to the path" even though `TESTDIR` isn't added to `PATH` exactly speaking, because `TESTDIR` and `RUNTESTDIR` weren't yet distinguished from each other at that time. This is a one of preparations for issue4677.
Fri, 03 Jul 2015 06:56:03 +0900 run-tests.py: add RUNTESTDIR to refer `tests` of Mercurial
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 03 Jul 2015 06:56:03 +0900] rev 25729
run-tests.py: add RUNTESTDIR to refer `tests` of Mercurial Before this patch, there is no way to refer files under `tests` or so of Mercurial source tree, when `run-tests.py` runs in `tests` of third party tools. In this case, `TESTDIR` refers the latter `tests`. This prevents third party tools from using useful tools in Mercurial source tree (e.g. `contrib/check-code.py`). This patch adds `RUNTESTDIR` environment variable to refer `tests` of Mercurial source tree, in which `run-tests.py` now running is placed. For example, tests of third party tools can refer `contrib/check-code.py` in Mercurial source tree as `$RUNTESTDIR/../contrib/check-code.py`. BTW, for similarity with `TESTDIR` referring `test*s*` directory, newly added environment variable isn't named as `RUNTEST*S*DIR`. In addition to it, the corresponded local variable is also named as `runtestdir`. This is a one of preparations for issue4677.
Fri, 03 Jul 2015 06:56:03 +0900 run-tests.py: execute hghave by the path relative to run-tests.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 03 Jul 2015 06:56:03 +0900] rev 25728
run-tests.py: execute hghave by the path relative to run-tests.py Before this patch, `run-tests.py` executes `hghave` by the path relative to `TESTDIR` (= cwd of `run-tests.py` running). This prevents third party tools for Mercurial from running `run-tests.py`, which is placed in `tests` of Mercurial source tree, in `tests` of own source tree. In such cases, `TESTDIR` refers the latter `tests`, and `hghave` doesn't exist in it. This is a one of preparations for issue4677.
Mon, 06 Jul 2015 23:23:22 -0400 templatekw: make {latesttag} a hybrid list
Matt Harbison <matt_harbison@yahoo.com> [Mon, 06 Jul 2015 23:23:22 -0400] rev 25727
templatekw: make {latesttag} a hybrid list This maintains the previous behavior of expanding {latesttag} to a string containing all of the tags, joined by ':'. But now it also allows list type operations. I'm unsure if the plural handling is correct (i.e. it seems like it is usually "{foos % '{foo}'}"), but I guess we are stuck with this because the singular form previously existed.
Mon, 06 Jul 2015 23:12:24 -0400 templatekw: allow the caller of showlist() to specify the join() separator
Matt Harbison <matt_harbison@yahoo.com> [Mon, 06 Jul 2015 23:12:24 -0400] rev 25726
templatekw: allow the caller of showlist() to specify the join() separator The keyword {latesttag} currently manually joins the list of tags using ':', which prevents a transparent switch over to a hybrid list.
Tue, 30 Jun 2015 23:56:49 -0400 archive: use {changessincelatesttag} to build the metadata file
Matt Harbison <matt_harbison@yahoo.com> [Tue, 30 Jun 2015 23:56:49 -0400] rev 25725
archive: use {changessincelatesttag} to build the metadata file This isolates the current magic when dealing with wdir() and only().
Fri, 26 Jun 2015 23:11:05 -0400 templatekw: introduce the changessincelatesttag keyword
Matt Harbison <matt_harbison@yahoo.com> [Fri, 26 Jun 2015 23:11:05 -0400] rev 25724
templatekw: introduce the changessincelatesttag keyword Archive is putting a value with the same name in the metadata file, to count all of the changes not covered by the latest tag, instead of just along the longest path. It seems that this would be useful to have on the command line as well. It might be nice for the name to start with 'latesttag' so that it is grouped with the other tag keywords, but I can't think of a better name. The initial version of this counted a clean wdir() and '.' as the same value, and a dirty wdir() as the same value after it is committed. Yuya objected on the grounds of consistency [1]. Since revsets can be used to conditionally select a dirty wdir() or '.' when clean, I can build the version string I need and will defer to him on this. [1] https://www.selenic.com/pipermail/mercurial-devel/2015-June/071588.html
Sat, 04 Jul 2015 23:11:32 -0400 help: support 'hg help template.somekeyword'
Matt Harbison <matt_harbison@yahoo.com> [Sat, 04 Jul 2015 23:11:32 -0400] rev 25723
help: support 'hg help template.somekeyword' Previously the output was simply 'abort: help section not found'.
Thu, 02 Jul 2015 00:04:08 -0400 test-convert-git: use a relative gitmodule url
Matt Harbison <matt_harbison@yahoo.com> [Thu, 02 Jul 2015 00:04:08 -0400] rev 25722
test-convert-git: use a relative gitmodule url The absolute URL was causing this error with 1.9.5 on Windows, which had a cascading effect: @@ -466,22 +466,24 @@ > url = $TESTTMP/git-repo5 > EOF $ git commit -a -m "weird white space submodule" - [master *] weird white space submodule (glob) - Author: nottest <test@example.org> - 1 file changed, 3 insertions(+) + fatal: bad config file line 6 in $TESTTMP/git-repo6/.gitmodules + [128] $ cd .. $ hg convert git-repo6 hg-repo6 initializing destination hg-repo6 repository scanning source... For reasons unknown, there is still this delta on Windows: @@ -490,7 +490,6 @@ $ git commit -q -m "missing .gitmodules" $ cd .. $ hg convert git-repo6 hg-repo6 --traceback - fatal: Path '.gitmodules' does not exist in '*' (glob) initializing destination hg-repo6 repository scanning source... sorting...
Wed, 01 Jul 2015 20:53:12 -0400 test-convert-git: stablize for git 1.7.7.6
Matt Harbison <matt_harbison@yahoo.com> [Wed, 01 Jul 2015 20:53:12 -0400] rev 25721
test-convert-git: stablize for git 1.7.7.6 The output has apparently changed slightly since this version. Since they are just commits without any obvious importance to the test, and I can't figure out how to glob them away, silence them. Sample diffs were like this: @@ -468,7 +468,7 @@ $ git commit -a -m "weird white space submodule" [master *] weird white space submodule (glob) Author: nottest <test@example.org> - 1 file changed, 3 insertions(+) + 1 files changed, 3 insertions(+), 0 deletions(-) $ cd .. $ hg convert git-repo6 hg-repo6 initializing destination hg-repo6 repository
Tue, 30 Jun 2015 23:55:22 -0700 hgweb: also monitor change to bookmarks
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 30 Jun 2015 23:55:22 -0700] rev 25720
hgweb: also monitor change to bookmarks This makes changes to bookmarks visible to hgweb through the official way. There is no change to tests because there is currently another hack in place to ensure the same behavior.
Wed, 01 Jul 2015 01:02:27 -0700 hgweb: also refresh the repo on changes to the obsstore
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Jul 2015 01:02:27 -0700] rev 25719
hgweb: also refresh the repo on changes to the obsstore Before this change, hgweb could miss update to the obsolescence markers store if that was the only change between two commands.
Wed, 01 Jul 2015 00:18:50 -0700 hgweb: use an extensible list of files to check for refresh
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Jul 2015 00:18:50 -0700] rev 25718
hgweb: use an extensible list of files to check for refresh The refresh feature was explicitly testing if '00changelog.i' and 'phaseroots' changed. This is overlooking other important information like bookmarks and obsstore (bookmark have their own hack to work around it). We move to a more extensible system with a list of files of interest that will be used to build the repo state. The system should probably move into a more central place so that the command server and other systems are able to use it. Extension writers will also be able to add entries to ensure that changes to extension data are properly detected. Also the current key (mtime, size) is notably weak for bookmarks and phases whose files can easily change content without effect on their size. Still, this patch seems like a valuable minimal first step.
Fri, 03 Jul 2015 10:07:51 -0700 hgweb: drop the default argument for get_stat
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Jul 2015 10:07:51 -0700] rev 25717
hgweb: drop the default argument for get_stat This default argument is used twice and is making things confusing. Making it explicit helps to clarify coming changesets
Thu, 02 Jul 2015 23:46:18 -0700 revset: prefetch method in "parents"
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 02 Jul 2015 23:46:18 -0700] rev 25716
revset: prefetch method in "parents" As already demonstrated, saving attribute lookup gains us some minor but noticeable performance improvements. revset #0: parents(all()) before) 0.024169 after ) 0.022756 94%
(0) -10000 -3000 -1000 -300 -100 -15 +15 +100 +300 +1000 +3000 +10000 tip