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.
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.
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.
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.
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.
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().
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
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'.
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...
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
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.
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.
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.
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
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%