ctest_update: Capture failure of svn to load revisions and local mods

Issue: #16646
This commit is contained in:
Brad King
2017-02-15 14:12:03 -05:00
parent ef399f9bc6
commit f10b2f72f6
2 changed files with 16 additions and 11 deletions

View File

@@ -99,7 +99,9 @@ std::string cmCTestSVN::LoadInfo(SVNInfo& svninfo)
bool cmCTestSVN::NoteOldRevision()
{
this->LoadRepositories();
if (!this->LoadRepositories()) {
return false;
}
std::list<SVNInfo>::iterator itbeg = this->Repositories.begin();
std::list<SVNInfo>::iterator itend = this->Repositories.end();
@@ -121,7 +123,9 @@ bool cmCTestSVN::NoteOldRevision()
bool cmCTestSVN::NoteNewRevision()
{
this->LoadRepositories();
if (!this->LoadRepositories()) {
return false;
}
std::list<SVNInfo>::iterator itbeg = this->Repositories.begin();
std::list<SVNInfo>::iterator itend = this->Repositories.end();
@@ -374,17 +378,18 @@ private:
bool cmCTestSVN::LoadRevisions()
{
bool result = true;
// 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);
result = this->LoadRevisions(svninfo) && result;
}
return true;
return result;
}
void cmCTestSVN::LoadRevisions(SVNInfo& svninfo)
bool cmCTestSVN::LoadRevisions(SVNInfo& svninfo)
{
// We are interested in every revision included in the update.
std::string revs;
@@ -403,7 +408,7 @@ void cmCTestSVN::LoadRevisions(SVNInfo& svninfo)
svn_log.push_back(svninfo.LocalPath.c_str());
LogParser out(this, "log-out> ", svninfo);
OutputLogger err(this->Log, "log-err> ");
this->RunSVNCommand(svn_log, &out, &err);
return this->RunSVNCommand(svn_log, &out, &err);
}
void cmCTestSVN::DoRevisionSVN(Revision const& revision,
@@ -525,10 +530,10 @@ private:
}
};
void cmCTestSVN::LoadRepositories()
bool cmCTestSVN::LoadRepositories()
{
if (!this->Repositories.empty()) {
return;
return true;
}
// Info for root repository
@@ -540,7 +545,7 @@ void cmCTestSVN::LoadRepositories()
svn_status.push_back("status");
ExternalParser out(this, "external-out> ");
OutputLogger err(this->Log, "external-err> ");
this->RunSVNCommand(svn_status, &out, &err);
return this->RunSVNCommand(svn_status, &out, &err);
}
std::string cmCTestSVN::SVNInfo::BuildLocalPath(std::string const& path) const

View File

@@ -77,10 +77,10 @@ private:
SVNInfo* RootInfo;
std::string LoadInfo(SVNInfo& svninfo);
void LoadRepositories();
bool LoadRepositories();
bool LoadModifications() CM_OVERRIDE;
bool LoadRevisions() CM_OVERRIDE;
void LoadRevisions(SVNInfo& svninfo);
bool LoadRevisions(SVNInfo& svninfo);
void GuessBase(SVNInfo& svninfo, std::vector<Change> const& changes);