MantisBT - CDash
View Issue Details
0007541CDashpublic2008-08-25 15:362009-12-18 08:21
Brad King 
 
normalfeatureN/A
newopen 
1.2 
 
0007541: support modern version-control tools
Currently CDash supports only CVS-style file-based reporting of changes, and only defines a global revision by means of a date and a "nightly start time". Support for modern version-control tools requires a true notion of global revisions, as well as separate commit/publication times.
I've written some design discussion in the Wiki:

http://public.kitware.com/Wiki/CDash:Design#Global_Project_Revisions [^]
No tags attached.
parent of 0006857closed Brad King CMake Feature request: More UPDATE_TYPE (e.g. bzr) in CTest 
parent of 0006994closed Brad King CMake Add git support to CTest 
parent of 0008168closed Brad King CMake CTest retrieval of file versioning history has logic errors 
parent of 0007879closed Brad King CMake Support for mercurial 
parent of 0005258closed Brad King CMake Patch for perforce support in ctest 
related to 0003731closed Brad King CMake CTest incorrectly escpes SVN log while building Update.xml 
Issue History
2008-08-25 15:36Brad KingNew Issue
2008-08-25 15:37Brad KingRelationship addedrelated to 0006857
2008-08-25 15:38Brad KingRelationship addedrelated to 0006994
2009-02-25 14:47Brad KingNote Added: 0015389
2009-02-25 14:58Brad KingRelationship addedparent of 0008168
2009-03-05 10:40Brad KingRelationship addedrelated to 0003731
2009-07-10 11:20Brad KingRelationship replacedparent of 0006994
2009-07-10 11:21Brad KingRelationship replacedparent of 0006857
2009-07-10 11:21Brad KingRelationship addedparent of 0007879
2009-08-20 10:44Brad KingRelationship addedparent of 0005258
2009-12-18 08:21Brad KingNote Added: 0018945

Notes
(0015389)
Brad King   
2009-02-25 14:47   
I've made progress on the CMake side of this. The following changes are the main commit which rewrites the CTest Update handling. It now uses a factorized implementation that is more easily extended to other VCS tools.

ENH: Rewrite CTest Update implementation
/cvsroot/CMake/CMake/Source/CTest/cmCTestCVS.cxx,v <-- Source/CTest/cmCTestCVS.cxx
new revision: 1.2; previous revision: 1.1
/cvsroot/CMake/CMake/Source/CTest/cmCTestCVS.h,v <-- Source/CTest/cmCTestCVS.h
new revision: 1.2; previous revision: 1.1
/cvsroot/CMake/CMake/Source/CTest/cmCTestSVN.cxx,v <-- Source/CTest/cmCTestSVN.cxx
new revision: 1.5; previous revision: 1.4
/cvsroot/CMake/CMake/Source/CTest/cmCTestSVN.h,v <-- Source/CTest/cmCTestSVN.h
new revision: 1.5; previous revision: 1.4
/cvsroot/CMake/CMake/Source/CTest/cmCTestUpdateHandler.cxx,v <-- Source/CTest/cmCTestUpdateHandler.cxx
new revision: 1.62; previous revision: 1.61
/cvsroot/CMake/CMake/Source/CTest/cmCTestVC.cxx,v <-- Source/CTest/cmCTestVC.cxx
new revision: 1.7; previous revision: 1.6
/cvsroot/CMake/CMake/Source/CTest/cmCTestVC.h,v <-- Source/CTest/cmCTestVC.h
new revision: 1.6; previous revision: 1.5
(0018945)
Brad King   
2009-12-18 08:21   
The "Nightly Start Time" is not well-defined for distributed version control tools. There is discussion of this problem in some of the tool-specific children of this bug. DVCS tools allow so much flexibility that there is no "right" way to define and publish a nightly version. Our solution on the CTest side is to let individual project maintainers choose how to publish a nightly version that fits their workflow (IOW, no CTest-mandated approach).

The important part is that submissions to CDash indicate exactly what version of the project was tested. Previously this was determined for CVS (which versions files, not trees) by the nightly start time for Nightly builds, and left completely out for Experimental builds (other than file-wise update info). I've made changes to CTest to submit whole-tree revision information in Update.xml for all tools except CVS. This can be used by CDash to link to web viewers and/or display the exact version on the updates page.

Submit global tree revision in Update.xml
/cvsroot/CMake/CMake/Source/CTest/cmCTestGlobalVC.cxx,v <-- Source/CTest/cmCTestGlobalVC.cxx
new revision: 1.3; previous revision: 1.2
/cvsroot/CMake/CMake/Source/CTest/cmCTestGlobalVC.h,v <-- Source/CTest/cmCTestGlobalVC.h
new revision: 1.3; previous revision: 1.2
/cvsroot/CMake/CMake/Tests/CTestUpdateCVS.cmake.in,v <-- Tests/CTestUpdateCVS.cmake.in
new revision: 1.7; previous revision: 1.6
/cvsroot/CMake/CMake/Tests/CTestUpdateCommon.cmake,v <-- Tests/CTestUpdateCommon.cmake
new revision: 1.7; previous revision: 1.6

Submit Subversion directory path in Update.xml
/cvsroot/CMake/CMake/Source/CTest/cmCTestSVN.cxx,v <-- Source/CTest/cmCTestSVN.cxx
new revision: 1.10; previous revision: 1.9
/cvsroot/CMake/CMake/Source/CTest/cmCTestSVN.h,v <-- Source/CTest/cmCTestSVN.h
new revision: 1.8; previous revision: 1.7