This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via 2dd3b783fdc8d0c918d8134f9623439940715073 (commit) via 57234dd10a091e676d9e3a9279029dadace757c3 (commit) via 3776690e62c631edd520f566b2ebcaffbad230b4 (commit) via 41f0f83542ce8d69e4d9a4512a6dc66327f20c8d (commit) via fb6d5136926fc142fa893f853b62c5ca8df04d6c (commit) via 8d1e10296ae852afd80c789efa73492f87543034 (commit) via 2f204bc176e418e810de7034903974e7edb46b14 (commit) from dc4345a1a236ecd4ad95980507ca825c9abc9327 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2dd3b783fdc8d0c918d8134f9623439940715073 commit 2dd3b783fdc8d0c918d8134f9623439940715073 Merge: dc4345a 57234dd Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed Sep 5 09:36:10 2012 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Wed Sep 5 09:36:10 2012 -0400 Merge topic 'ctest-svn-update' into next 57234dd cmCTestSVN: Load and process information from externals 3776690 cmCTestSVN: Add a LoadExternal() function and an ExternalParser class 41f0f83 cmCTestSVN: Use the SVNInfo structure fb6d513 cmCTestSVN: Create the SVNInfo for the root repository 8d1e102 cmCTestSVN: Add the Repositories list and the RootInfo pointer 2f204bc cmCTestSVN: Extend Revision struct with SVN repo information http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=57234dd10a091e676d9e3a9279029dadace757c3 commit 57234dd10a091e676d9e3a9279029dadace757c3 Author: Xavier Besseron <xavier.besse...@uni.lu> AuthorDate: Mon Sep 3 11:10:53 2012 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Sep 4 08:35:36 2012 -0400 cmCTestSVN: Load and process information from externals Call LoadExternals() and perform operations on all elements of the Repositories list. diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index b27c633..49cea2e 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -121,9 +121,15 @@ void cmCTestSVN::NoteOldRevision() // Info for root repository this->Repositories.push_back( SVNInfo("") ); this->RootInfo = &(this->Repositories.back()); + // Info for the external repositories + this->LoadExternals(); - // Get info for the root repositiry - SVNInfo& svninfo = *RootInfo; + // Get info for all the repositories + std::list<SVNInfo>::iterator itbeg = this->Repositories.begin(); + std::list<SVNInfo>::iterator itend = this->Repositories.end(); + for( ; itbeg != itend ; itbeg++) + { + SVNInfo& svninfo = *itbeg; svninfo.OldRevision = this->LoadInfo(svninfo); this->Log << "Revision for repository '" << svninfo.LocalPath << "' before update: " << svninfo.OldRevision << "\n"; @@ -131,6 +137,7 @@ void cmCTestSVN::NoteOldRevision() " Old revision of external repository '" << svninfo.LocalPath << "' is: " << svninfo.OldRevision << "\n"); + } // Set the global old revision to the one of the root this->OldRevision = this->RootInfo->OldRevision; @@ -140,8 +147,12 @@ void cmCTestSVN::NoteOldRevision() //---------------------------------------------------------------------------- void cmCTestSVN::NoteNewRevision() { - // Get info for the root repository - SVNInfo& svninfo = *RootInfo; + // Get info for the external repositories + std::list<SVNInfo>::iterator itbeg = this->Repositories.begin(); + std::list<SVNInfo>::iterator itend = this->Repositories.end(); + for( ; itbeg != itend ; itbeg++) + { + SVNInfo& svninfo = *itbeg; svninfo.NewRevision = this->LoadInfo(svninfo); this->Log << "Revision for repository '" << svninfo.LocalPath << "' after update: " << svninfo.NewRevision << "\n"; @@ -168,6 +179,8 @@ void cmCTestSVN::NoteNewRevision() this->Log << "Repository '" << svninfo.LocalPath << "' Base = " << svninfo.Base << "\n"; + } + // Set the global new revision to the one of the root this->NewRevision = this->RootInfo->NewRevision; } @@ -379,9 +392,14 @@ private: //---------------------------------------------------------------------------- void cmCTestSVN::LoadRevisions() { - // Get revision of the root repository - SVNInfo& svninfo = *RootInfo; + // Get revisions for all the external repositories + std::list<SVNInfo>::iterator itbeg = this->Repositories.begin(); + std::list<SVNInfo>::iterator itend = this->Repositories.end(); + for( ; itbeg != itend ; itbeg++) + { + SVNInfo& svninfo = *itbeg; LoadRevisions(svninfo); + } } //---------------------------------------------------------------------------- @@ -418,6 +436,14 @@ void cmCTestSVN::DoRevisionSVN(Revision const& revision, { this->GuessBase(*this->RootInfo, changes); } + + // Ignore changes in the old revision for external repositories + if(revision.Rev == revision.SVNInfo->OldRevision + && revision.SVNInfo->LocalPath != "") + { + return; + } + this->cmCTestGlobalVC::DoRevision(revision, changes); } http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3776690e62c631edd520f566b2ebcaffbad230b4 commit 3776690e62c631edd520f566b2ebcaffbad230b4 Author: Xavier Besseron <xavier.besse...@uni.lu> AuthorDate: Mon Sep 3 11:03:43 2012 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Sep 4 08:35:36 2012 -0400 cmCTestSVN: Add a LoadExternal() function and an ExternalParser class This call 'svn status' and parse the result to get the list of externals repositories. The external repositories found are added to the Repositories list. diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index 32b1ef9..b27c633 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -482,6 +482,56 @@ void cmCTestSVN::WriteXMLGlobal(std::ostream& xml) } //---------------------------------------------------------------------------- +class cmCTestSVN::ExternalParser: public cmCTestVC::LineParser +{ +public: + ExternalParser(cmCTestSVN* svn, const char* prefix): SVN(svn) + { + this->SetLog(&svn->Log, prefix); + this->RegexExternal.compile("^X..... +(.+)$"); + } +private: + cmCTestSVN* SVN; + cmsys::RegularExpression RegexExternal; + bool ProcessLine() + { + if(this->RegexExternal.find(this->Line)) + { + this->DoPath(this->RegexExternal.match(1)); + } + return true; + } + + void DoPath(std::string const& path) + { + // Get local path relative to the source directory + std::string local_path; + if(path.size() > this->SVN->SourceDirectory.size() && + strncmp(path.c_str(), this->SVN->SourceDirectory.c_str(), + this->SVN->SourceDirectory.size()) == 0) + { + local_path = path.c_str() + this->SVN->SourceDirectory.size() + 1; + } + else + { + local_path = path; + } + this->SVN->Repositories.push_back( SVNInfo(local_path.c_str()) ); + } +}; + +//---------------------------------------------------------------------------- +void cmCTestSVN::LoadExternals() +{ + // Run "svn status" to get the list of external repositories + const char* svn = this->CommandLineTool.c_str(); + const char* svn_status[] = {svn, "status", 0}; + ExternalParser out(this, "external-out> "); + OutputLogger err(this->Log, "external-err> "); + this->RunChild(svn_status, &out, &err); +} + +//---------------------------------------------------------------------------- std::string cmCTestSVN::SVNInfo::BuildLocalPath(std::string const& path) const { std::string local_path; diff --git a/Source/CTest/cmCTestSVN.h b/Source/CTest/cmCTestSVN.h index 4fb37a6..56265d0 100644 --- a/Source/CTest/cmCTestSVN.h +++ b/Source/CTest/cmCTestSVN.h @@ -68,6 +68,7 @@ private: SVNInfo* RootInfo; std::string LoadInfo(SVNInfo& svninfo); + void LoadExternals(); void LoadModifications(); void LoadRevisions(); void LoadRevisions(SVNInfo& svninfo); @@ -84,10 +85,12 @@ private: class LogParser; class StatusParser; class UpdateParser; + class ExternalParser; friend class InfoParser; friend class LogParser; friend class StatusParser; friend class UpdateParser; + friend class ExternalParser; }; #endif http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=41f0f83542ce8d69e4d9a4512a6dc66327f20c8d commit 41f0f83542ce8d69e4d9a4512a6dc66327f20c8d Author: Xavier Besseron <xavier.besse...@uni.lu> AuthorDate: Mon Sep 3 10:50:07 2012 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Sep 4 08:35:35 2012 -0400 cmCTestSVN: Use the SVNInfo structure - Suppress the URL, Root, Base fields from the cmCTestSVN class - Update the code to use RootInfo instead - LoadInfo(), GuessBase(), and a new LoadRevision() functions work on a given SVNInfo - Use the implementation from the base class for LocalPath(), correct path is built by SVNInfo::BuildLocalPath() instead diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index 53dd20e..32b1ef9 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -49,8 +49,11 @@ void cmCTestSVN::CleanupImpl() class cmCTestSVN::InfoParser: public cmCTestVC::LineParser { public: - InfoParser(cmCTestSVN* svn, const char* prefix, std::string& rev): - SVN(svn), Rev(rev) + InfoParser(cmCTestSVN* svn, + const char* prefix, + std::string& rev, + SVNInfo& svninfo): + Rev(rev), SVNRepo(svninfo) { this->SetLog(&svn->Log, prefix); this->RegexRev.compile("^Revision: ([0-9]+)"); @@ -58,8 +61,8 @@ public: this->RegexRoot.compile("^Repository Root: +([^ ]+) *$"); } private: - cmCTestSVN* SVN; std::string& Rev; + cmCTestSVN::SVNInfo& SVNRepo; cmsys::RegularExpression RegexRev; cmsys::RegularExpression RegexURL; cmsys::RegularExpression RegexRoot; @@ -71,11 +74,11 @@ private: } else if(this->RegexURL.find(this->Line)) { - this->SVN->URL = this->RegexURL.match(1); + this->SVNRepo.URL = this->RegexURL.match(1); } else if(this->RegexRoot.find(this->Line)) { - this->SVN->Root = this->RegexRoot.match(1); + this->SVNRepo.Root = this->RegexRoot.match(1); } return true; } @@ -100,13 +103,13 @@ static bool cmCTestSVNPathStarts(std::string const& p1, std::string const& p2) } //---------------------------------------------------------------------------- -std::string cmCTestSVN::LoadInfo() +std::string cmCTestSVN::LoadInfo(SVNInfo& svninfo) { // Run "svn info" to get the repository info from the work tree. const char* svn = this->CommandLineTool.c_str(); - const char* svn_info[] = {svn, "info", 0}; + const char* svn_info[] = {svn, "info", svninfo.LocalPath.c_str(), 0}; std::string rev; - InfoParser out(this, "info-out> ", rev); + InfoParser out(this, "info-out> ", rev, svninfo); OutputLogger err(this->Log, "info-err> "); this->RunChild(svn_info, &out, &err); return rev; @@ -118,55 +121,78 @@ void cmCTestSVN::NoteOldRevision() // Info for root repository this->Repositories.push_back( SVNInfo("") ); this->RootInfo = &(this->Repositories.back()); - this->OldRevision = this->LoadInfo(); - this->Log << "Revision before update: " << this->OldRevision << "\n"; - cmCTestLog(this->CTest, HANDLER_OUTPUT, " Old revision of repository is: " - << this->OldRevision << "\n"); + + // Get info for the root repositiry + SVNInfo& svninfo = *RootInfo; + svninfo.OldRevision = this->LoadInfo(svninfo); + this->Log << "Revision for repository '" << svninfo.LocalPath + << "' before update: " << svninfo.OldRevision << "\n"; + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " Old revision of external repository '" + << svninfo.LocalPath << "' is: " + << svninfo.OldRevision << "\n"); + + // Set the global old revision to the one of the root + this->OldRevision = this->RootInfo->OldRevision; this->PriorRev.Rev = this->OldRevision; } //---------------------------------------------------------------------------- void cmCTestSVN::NoteNewRevision() { - this->NewRevision = this->LoadInfo(); - this->Log << "Revision after update: " << this->NewRevision << "\n"; - cmCTestLog(this->CTest, HANDLER_OUTPUT, " New revision of repository is: " - << this->NewRevision << "\n"); - - // this->Root = ""; // uncomment to test GuessBase - this->Log << "URL = " << this->URL << "\n"; - this->Log << "Root = " << this->Root << "\n"; - - // Compute the base path the working tree has checked out under - // the repository root. - if(!this->Root.empty() && cmCTestSVNPathStarts(this->URL, this->Root)) - { - this->Base = cmCTest::DecodeURL(this->URL.substr(this->Root.size())); - this->Base += "/"; - } - this->Log << "Base = " << this->Base << "\n"; + // Get info for the root repository + SVNInfo& svninfo = *RootInfo; + svninfo.NewRevision = this->LoadInfo(svninfo); + this->Log << "Revision for repository '" << svninfo.LocalPath + << "' after update: " << svninfo.NewRevision << "\n"; + cmCTestLog(this->CTest, HANDLER_OUTPUT, + " New revision of external repository '" + << svninfo.LocalPath << "' is: " + << svninfo.NewRevision << "\n"); + + // svninfo.Root = ""; // uncomment to test GuessBase + this->Log << "Repository '" << svninfo.LocalPath + << "' URL = " << svninfo.URL << "\n"; + this->Log << "Repository '" << svninfo.LocalPath + << "' Root = " << svninfo.Root << "\n"; + + // Compute the base path the working tree has checked out under + // the repository root. + if(!svninfo.Root.empty() + && cmCTestSVNPathStarts(svninfo.URL, svninfo.Root)) + { + svninfo.Base = cmCTest::DecodeURL( + svninfo.URL.substr(svninfo.Root.size())); + svninfo.Base += "/"; + } + this->Log << "Repository '" << svninfo.LocalPath + << "' Base = " << svninfo.Base << "\n"; + + // Set the global new revision to the one of the root + this->NewRevision = this->RootInfo->NewRevision; } //---------------------------------------------------------------------------- -void cmCTestSVN::GuessBase(std::vector<Change> const& changes) +void cmCTestSVN::GuessBase(SVNInfo& svninfo, + std::vector<Change> const& changes) { // Subversion did not give us a good repository root so we need to // guess the base path from the URL and the paths in a revision with // changes under it. // Consider each possible URL suffix from longest to shortest. - for(std::string::size_type slash = this->URL.find('/'); - this->Base.empty() && slash != std::string::npos; - slash = this->URL.find('/', slash+1)) + for(std::string::size_type slash = svninfo.URL.find('/'); + svninfo.Base.empty() && slash != std::string::npos; + slash = svninfo.URL.find('/', slash+1)) { // If the URL suffix is a prefix of at least one path then it is the base. - std::string base = cmCTest::DecodeURL(this->URL.substr(slash)); + std::string base = cmCTest::DecodeURL(svninfo.URL.substr(slash)); for(std::vector<Change>::const_iterator ci = changes.begin(); - this->Base.empty() && ci != changes.end(); ++ci) + svninfo.Base.empty() && ci != changes.end(); ++ci) { if(cmCTestSVNPathStarts(ci->Path, base)) { - this->Base = base; + svninfo.Base = base; } } } @@ -175,25 +201,9 @@ void cmCTestSVN::GuessBase(std::vector<Change> const& changes) // base lie under its path. If no base was found then the working // tree must be a checkout of the entire repo and this will match // the leading slash in all paths. - this->Base += "/"; - - this->Log << "Guessed Base = " << this->Base << "\n"; -} + svninfo.Base += "/"; -//---------------------------------------------------------------------------- -const char* cmCTestSVN::LocalPath(std::string const& path) -{ - if(path.size() > this->Base.size() && - strncmp(path.c_str(), this->Base.c_str(), this->Base.size()) == 0) - { - // This path lies under the base, so return a relative path. - return path.c_str() + this->Base.size(); - } - else - { - // This path does not lie under the base, so ignore it. - return 0; - } + this->Log << "Guessed Base = " << svninfo.Base << "\n"; } //---------------------------------------------------------------------------- @@ -282,11 +292,13 @@ class cmCTestSVN::LogParser: public cmCTestVC::OutputLogger, private cmXMLParser { public: - LogParser(cmCTestSVN* svn, const char* prefix): - OutputLogger(svn->Log, prefix), SVN(svn) { this->InitializeParser(); } + LogParser(cmCTestSVN* svn, const char* prefix, SVNInfo& svninfo): + OutputLogger(svn->Log, prefix), SVN(svn), SVNRepo(svninfo) + { this->InitializeParser(); } ~LogParser() { this->CleanupParser(); } private: cmCTestSVN* SVN; + cmCTestSVN::SVNInfo& SVNRepo; typedef cmCTestSVN::Revision Revision; typedef cmCTestSVN::Change Change; @@ -308,6 +320,7 @@ private: if(strcmp(name, "logentry") == 0) { this->Rev = Revision(); + this->Rev.SVNInfo = &SVNRepo; if(const char* rev = this->FindAttribute(atts, "revision")) { this->Rev.Rev = rev; @@ -337,7 +350,9 @@ private: } else if(strcmp(name, "path") == 0 && !this->CData.empty()) { - this->CurChange.Path.assign(&this->CData[0], this->CData.size()); + std::string orig_path(&this->CData[0], this->CData.size()); + std::string new_path = SVNRepo.BuildLocalPath( orig_path ); + this->CurChange.Path.assign(new_path); this->Changes.push_back(this->CurChange); } else if(strcmp(name, "author") == 0 && !this->CData.empty()) @@ -364,22 +379,31 @@ private: //---------------------------------------------------------------------------- void cmCTestSVN::LoadRevisions() { + // Get revision of the root repository + SVNInfo& svninfo = *RootInfo; + LoadRevisions(svninfo); +} + +//---------------------------------------------------------------------------- +void cmCTestSVN::LoadRevisions(SVNInfo &svninfo) +{ // We are interested in every revision included in the update. std::string revs; - if(atoi(this->OldRevision.c_str()) < atoi(this->NewRevision.c_str())) + if(atoi(svninfo.OldRevision.c_str()) < atoi(svninfo.NewRevision.c_str())) { - revs = "-r" + this->OldRevision + ":" + this->NewRevision; + revs = "-r" + svninfo.OldRevision + ":" + svninfo.NewRevision; } else { - revs = "-r" + this->NewRevision; + revs = "-r" + svninfo.NewRevision; } // Run "svn log" to get all global revisions of interest. const char* svn = this->CommandLineTool.c_str(); - const char* svn_log[] = {svn, "log", "--xml", "-v", revs.c_str(), 0}; + const char* svn_log[] = {svn, "log", "--xml", "-v", revs.c_str(), + svninfo.LocalPath.c_str(), 0}; { - LogParser out(this, "log-out> "); + LogParser out(this, "log-out> ", svninfo); OutputLogger err(this->Log, "log-err> "); this->RunChild(svn_log, &out, &err); } @@ -390,9 +414,9 @@ void cmCTestSVN::DoRevisionSVN(Revision const& revision, std::vector<Change> const& changes) { // Guess the base checkout path from the changes if necessary. - if(this->Base.empty() && !changes.empty()) + if(this->RootInfo->Base.empty() && !changes.empty()) { - this->GuessBase(changes); + this->GuessBase(*this->RootInfo, changes); } this->cmCTestGlobalVC::DoRevision(revision, changes); } @@ -454,7 +478,7 @@ void cmCTestSVN::WriteXMLGlobal(std::ostream& xml) { this->cmCTestGlobalVC::WriteXMLGlobal(xml); - xml << "\t<SVNPath>" << this->Base << "</SVNPath>\n"; + xml << "\t<SVNPath>" << this->RootInfo->Base << "</SVNPath>\n"; } //---------------------------------------------------------------------------- diff --git a/Source/CTest/cmCTestSVN.h b/Source/CTest/cmCTestSVN.h index a084d40..4fb37a6 100644 --- a/Source/CTest/cmCTestSVN.h +++ b/Source/CTest/cmCTestSVN.h @@ -33,15 +33,6 @@ private: virtual void NoteNewRevision(); virtual bool UpdateImpl(); - // URL of repository directory checked out in the working tree. - std::string URL; - - // URL of repository root directory. - std::string Root; - - // Directory under repository root checked out in working tree. - std::string Base; - // Information about an SVN repository (root repository or external) struct SVNInfo { @@ -76,12 +67,12 @@ private: // Pointer to the infos of the root repository. SVNInfo* RootInfo; - std::string LoadInfo(); + std::string LoadInfo(SVNInfo& svninfo); void LoadModifications(); void LoadRevisions(); + void LoadRevisions(SVNInfo& svninfo); - void GuessBase(std::vector<Change> const& changes); - const char* LocalPath(std::string const& path); + void GuessBase(SVNInfo &svninfo, std::vector<Change> const& changes); void DoRevisionSVN(Revision const& revision, std::vector<Change> const& changes); http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fb6d5136926fc142fa893f853b62c5ca8df04d6c commit fb6d5136926fc142fa893f853b62c5ca8df04d6c Author: Xavier Besseron <xavier.besse...@uni.lu> AuthorDate: Fri Aug 24 10:48:57 2012 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Sep 4 08:35:35 2012 -0400 cmCTestSVN: Create the SVNInfo for the root repository diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index 15d9487..53dd20e 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -115,6 +115,9 @@ std::string cmCTestSVN::LoadInfo() //---------------------------------------------------------------------------- void cmCTestSVN::NoteOldRevision() { + // Info for root repository + this->Repositories.push_back( SVNInfo("") ); + this->RootInfo = &(this->Repositories.back()); this->OldRevision = this->LoadInfo(); this->Log << "Revision before update: " << this->OldRevision << "\n"; cmCTestLog(this->CTest, HANDLER_OUTPUT, " Old revision of repository is: " http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8d1e10296ae852afd80c789efa73492f87543034 commit 8d1e10296ae852afd80c789efa73492f87543034 Author: Xavier Besseron <xavier.besse...@uni.lu> AuthorDate: Fri Aug 24 10:47:59 2012 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Sep 4 08:35:35 2012 -0400 cmCTestSVN: Add the Repositories list and the RootInfo pointer The Repository list will contain the SVNInfo of all the repositories (root and external ones). The RootInfo pointer will point to the SVNInfo structure of the root repository. diff --git a/Source/CTest/cmCTestSVN.h b/Source/CTest/cmCTestSVN.h index 12feba9..a084d40 100644 --- a/Source/CTest/cmCTestSVN.h +++ b/Source/CTest/cmCTestSVN.h @@ -70,6 +70,12 @@ private: // Extended revision structure to include info about external it refers to. struct Revision; + // Info of all the repositories (root, externals and nested ones). + std::list<SVNInfo> Repositories; + + // Pointer to the infos of the root repository. + SVNInfo* RootInfo; + std::string LoadInfo(); void LoadModifications(); void LoadRevisions(); http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2f204bc176e418e810de7034903974e7edb46b14 commit 2f204bc176e418e810de7034903974e7edb46b14 Author: Xavier Besseron <xavier.besse...@uni.lu> AuthorDate: Fri Aug 24 10:30:09 2012 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Sep 4 08:35:35 2012 -0400 cmCTestSVN: Extend Revision struct with SVN repo information Also rename DoRevision to DoRevisionSVN since the signature changes. diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index 7ca87e2..15d9487 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -18,6 +18,11 @@ #include <cmsys/RegularExpression.hxx> +struct cmCTestSVN::Revision: public cmCTestVC::Revision +{ + cmCTestSVN::SVNInfo* SVNInfo; +}; + //---------------------------------------------------------------------------- cmCTestSVN::cmCTestSVN(cmCTest* ct, std::ostream& log): cmCTestGlobalVC(ct, log) @@ -325,7 +330,7 @@ private: { if(strcmp(name, "logentry") == 0) { - this->SVN->DoRevision(this->Rev, this->Changes); + this->SVN->DoRevisionSVN(this->Rev, this->Changes); } else if(strcmp(name, "path") == 0 && !this->CData.empty()) { @@ -378,8 +383,8 @@ void cmCTestSVN::LoadRevisions() } //---------------------------------------------------------------------------- -void cmCTestSVN::DoRevision(Revision const& revision, - std::vector<Change> const& changes) +void cmCTestSVN::DoRevisionSVN(Revision const& revision, + std::vector<Change> const& changes) { // Guess the base checkout path from the changes if necessary. if(this->Base.empty() && !changes.empty()) diff --git a/Source/CTest/cmCTestSVN.h b/Source/CTest/cmCTestSVN.h index 97eeaf5..12feba9 100644 --- a/Source/CTest/cmCTestSVN.h +++ b/Source/CTest/cmCTestSVN.h @@ -67,6 +67,9 @@ private: }; + // Extended revision structure to include info about external it refers to. + struct Revision; + std::string LoadInfo(); void LoadModifications(); void LoadRevisions(); @@ -74,8 +77,8 @@ private: void GuessBase(std::vector<Change> const& changes); const char* LocalPath(std::string const& path); - void DoRevision(Revision const& revision, - std::vector<Change> const& changes); + void DoRevisionSVN(Revision const& revision, + std::vector<Change> const& changes); void WriteXMLGlobal(std::ostream& xml); ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits