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 2a327bd34fa9052be435f5ca105d510adcc416c2 (commit) via 9c70ed0c06e08b84474db9518cca4ad6f949a34a (commit) from 694086e5ab99ecfa29cdeaf4c7824dd2ee890399 (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=2a327bd34fa9052be435f5ca105d510adcc416c2 commit 2a327bd34fa9052be435f5ca105d510adcc416c2 Merge: 694086e 9c70ed0 Author: Brad King <brad.k...@kitware.com> AuthorDate: Mon Sep 24 11:30:49 2012 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Mon Sep 24 11:30:49 2012 -0400 Merge topic 'ctest-svn-non-interactive' into next 9c70ed0 ctest_update: Tell svn not to prompt interactively (#13024) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9c70ed0c06e08b84474db9518cca4ad6f949a34a commit 9c70ed0c06e08b84474db9518cca4ad6f949a34a Author: Nils Gladitz <glad...@scivis.de> AuthorDate: Sun Sep 23 19:55:48 2012 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Mon Sep 24 11:30:42 2012 -0400 ctest_update: Tell svn not to prompt interactively (#13024) While at it, add SVNOptions/CTEST_SVN_OPTIONS configuration settings to add options to all svn invocations instead of just "svn update". diff --git a/Modules/DartConfiguration.tcl.in b/Modules/DartConfiguration.tcl.in index ad7f805..9e49ac7 100644 --- a/Modules/DartConfiguration.tcl.in +++ b/Modules/DartConfiguration.tcl.in @@ -44,6 +44,7 @@ CVSUpdateOptions: @CVS_UPDATE_OPTIONS@ # Subversion options SVNCommand: @SVNCOMMAND@ +SVNOptions: @CTEST_SVN_OPTIONS@ SVNUpdateOptions: @SVN_UPDATE_OPTIONS@ # Git options diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index 49cea2e..7f530b0 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -38,11 +38,11 @@ cmCTestSVN::~cmCTestSVN() //---------------------------------------------------------------------------- void cmCTestSVN::CleanupImpl() { - const char* svn = this->CommandLineTool.c_str(); - const char* svn_cleanup[] = {svn, "cleanup", 0}; + std::vector<const char*> svn_cleanup; + svn_cleanup.push_back("cleanup"); OutputLogger out(this->Log, "cleanup-out> "); OutputLogger err(this->Log, "cleanup-err> "); - this->RunChild(svn_cleanup, &out, &err); + this->RunSVNCommand(svn_cleanup, &out, &err); } //---------------------------------------------------------------------------- @@ -106,12 +106,13 @@ static bool cmCTestSVNPathStarts(std::string const& p1, std::string const& p2) 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", svninfo.LocalPath.c_str(), 0}; + std::vector<const char*> svn_info; + svn_info.push_back("info"); + svn_info.push_back(svninfo.LocalPath.c_str()); std::string rev; InfoParser out(this, "info-out> ", rev, svninfo); OutputLogger err(this->Log, "info-err> "); - this->RunChild(svn_info, &out, &err); + this->RunSVNCommand(svn_info, &out, &err); return rev; } @@ -285,19 +286,51 @@ bool cmCTestSVN::UpdateImpl() } std::vector<char const*> svn_update; - svn_update.push_back(this->CommandLineTool.c_str()); svn_update.push_back("update"); - svn_update.push_back("--non-interactive"); for(std::vector<cmStdString>::const_iterator ai = args.begin(); ai != args.end(); ++ai) { svn_update.push_back(ai->c_str()); } - svn_update.push_back(0); UpdateParser out(this, "up-out> "); OutputLogger err(this->Log, "up-err> "); - return this->RunUpdateCommand(&svn_update[0], &out, &err); + return this->RunSVNCommand(svn_update, &out, &err); +} + +//---------------------------------------------------------------------------- +bool cmCTestSVN::RunSVNCommand(std::vector<char const*> const& parameters, + OutputParser* out, OutputParser* err) +{ + if(parameters.empty()) return false; + + std::vector<char const*> args; + args.push_back(this->CommandLineTool.c_str()); + + args.insert(args.end(), parameters.begin(), parameters.end()); + + args.push_back("--non-interactive"); + + std::string userOptions = + this->CTest->GetCTestConfiguration("SVNOptions"); + + std::vector<cmStdString> parsedUserOptions = + cmSystemTools::ParseArguments(userOptions.c_str()); + for(std::size_t i = 0; i < parsedUserOptions.size(); ++i) + { + args.push_back(parsedUserOptions[i].c_str()); + } + + args.push_back(0); + + if(strcmp(parameters[0], "update") == 0) + { + return RunUpdateCommand(&args[0], out, err); + } + else + { + return RunChild(&args[0], out, err); + } } //---------------------------------------------------------------------------- @@ -417,14 +450,15 @@ void cmCTestSVN::LoadRevisions(SVNInfo &svninfo) } // 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(), - svninfo.LocalPath.c_str(), 0}; - { + std::vector<const char*> svn_log; + svn_log.push_back("log"); + svn_log.push_back("--xml"); + svn_log.push_back("-v"); + svn_log.push_back(revs.c_str()); + svn_log.push_back(svninfo.LocalPath.c_str()); LogParser out(this, "log-out> ", svninfo); OutputLogger err(this->Log, "log-err> "); - this->RunChild(svn_log, &out, &err); - } + this->RunSVNCommand(svn_log, &out, &err); } //---------------------------------------------------------------------------- @@ -492,11 +526,11 @@ private: void cmCTestSVN::LoadModifications() { // Run "svn status" which reports local modifications. - const char* svn = this->CommandLineTool.c_str(); - const char* svn_status[] = {svn, "status", "--non-interactive", 0}; + std::vector<const char*> svn_status; + svn_status.push_back("status"); StatusParser out(this, "status-out> "); OutputLogger err(this->Log, "status-err> "); - this->RunChild(svn_status, &out, &err); + this->RunSVNCommand(svn_status, &out, &err); } //---------------------------------------------------------------------------- @@ -550,11 +584,11 @@ private: 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}; + std::vector<const char*> svn_status; + svn_status.push_back("status"); ExternalParser out(this, "external-out> "); OutputLogger err(this->Log, "external-err> "); - this->RunChild(svn_status, &out, &err); + this->RunSVNCommand(svn_status, &out, &err); } //---------------------------------------------------------------------------- diff --git a/Source/CTest/cmCTestSVN.h b/Source/CTest/cmCTestSVN.h index 56265d0..73d676e 100644 --- a/Source/CTest/cmCTestSVN.h +++ b/Source/CTest/cmCTestSVN.h @@ -33,6 +33,9 @@ private: virtual void NoteNewRevision(); virtual bool UpdateImpl(); + bool RunSVNCommand(std::vector<char const*> const& parameters, + OutputParser* out, OutputParser* err); + // Information about an SVN repository (root repository or external) struct SVNInfo { diff --git a/Source/CTest/cmCTestUpdateCommand.cxx b/Source/CTest/cmCTestUpdateCommand.cxx index 8414349..2ca9f6c 100644 --- a/Source/CTest/cmCTestUpdateCommand.cxx +++ b/Source/CTest/cmCTestUpdateCommand.cxx @@ -44,6 +44,8 @@ cmCTestGenericHandler* cmCTestUpdateCommand::InitializeHandler() this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, "SVNUpdateOptions", "CTEST_SVN_UPDATE_OPTIONS"); this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, + "SVNOptions", "CTEST_SVN_OPTIONS"); + this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, "BZRCommand", "CTEST_BZR_COMMAND"); this->CTest->SetCTestConfigurationFromCMakeVariable(this->Makefile, "BZRUpdateOptions", "CTEST_BZR_UPDATE_OPTIONS"); ----------------------------------------------------------------------- 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