[CMake] Mercurial support for ctest

Emmanuel Christophe emmanuel.christophe at gmail.com
Mon Nov 24 22:16:25 EST 2008


Hi,

Attached is a patch to add the support for mercurial (hg) to ctest (to
apply to CMake 2.6.2 release or 2.6.0).

The first step consisted in finding the equivalent mercurial command
and the correct way to parse the output (to enable the Coutinuous).
Here are some of the points which may need a discussion:
- I am still undecided about the equivalent of the 'svn cleanup'
between 'hg purge -f' which might remove some files and 'hg verify'
which seems a bit too low level.
- Not too sure either what is the use for use_status. But nightly and
continuous are working fine using the XML parsing.
- This does not handle yet the merge or conflict that can arise.

The second step is the strategy to get the correct nightly version. As
the history is not linear, there is no simple way to know which
version should be tested from the date only. I assumed that the
nightly version should be common to the all dashboard (for comparison)
and that the nightly version identification should be provided by the
dashboard. Now, the location of the information is indicated by the
new variable CTEST_NIGHTLY_IDENT_LOCATION which point to a web address
such as http://www.orfeo-toolbox.org/nightly/libNightlyNumber (this is
a simple file containing the identification of the version to be
tested). Ideally, this could be added to CDash which could store all
the nightly identification in its database and provide them on demand
through a php script.

The corresponding test is added in CTestTest3. However, the test
repository need to be created. It could be done using the following
steps:
- Copy a version of kwsys in a directory and go in.
- hg init
- hg add .
- hg commit -m "Initial commit"
Retrieve this version identification and put it in the CTestTest3 file.
Few version need to be added to make things interesting:
- modify a file
- hg commit -m "First modification"
- another one
- hg commit -m "Second modification"
The repository could be online or local, it will behave the same way.


I believe that the same process could easily be adapted to git and
bzr, the main task is to find the equivalent command and the right way
to parse the output.

Regards,
Emmanuel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch-mercurial.patch.gz
Type: application/x-gzip
Size: 8135 bytes
Desc: not available
URL: <http://www.cmake.org/pipermail/cmake/attachments/20081125/aeddcb9d/attachment-0001.bin>


More information about the CMake mailing list