Attached Files | ctest-versioninfo.patch [^] (27,283 bytes) 2008-11-25 10:46 [Show Content] [Hide Content]diff --exclude='*~' -r -U 5 cmake-2.6.2.orig/Source/CTest/cmCTestUpdateHandler.cxx cmake-2.6.2.edit/Source/CTest/cmCTestUpdateHandler.cxx
--- cmake-2.6.2.orig/Source/CTest/cmCTestUpdateHandler.cxx 2008-09-24 19:34:37.000000000 +0100
+++ cmake-2.6.2.edit/Source/CTest/cmCTestUpdateHandler.cxx 2008-11-25 15:22:58.000000000 +0000
@@ -178,10 +178,110 @@
int MaxRevision;
};
//**********************************************************************
//----------------------------------------------------------------------
+
+//----------------------------------------------------------------------
+//**********************************************************************
+class cmCTestUpdateHandlerSVNStatusXMLParser : public cmXMLParser
+{
+public:
+
+ cmCTestUpdateHandlerSVNStatusXMLParser(cmCTestUpdateHandler* up)
+ : cmXMLParser(), UpdateHandler(up), WCRevision(-1), CommitRevision(-1)
+ {
+ }
+
+ int Parse(const char* str)
+ {
+ this->WCRevision = -1;
+ this->CommitRevision = -1;
+ this->Author.clear();
+ this->File.clear();
+ int res = this->cmXMLParser::Parse(str);
+ if ( this->WCRevision == -1 || this->CommitRevision == -1 ||
+ this->Author.empty() || this->File.empty())
+ {
+ return 0;
+ }
+ return res;
+ }
+
+ int GetWCRevision() const { return this->WCRevision; }
+ int GetCommitRevision() const { return this->CommitRevision; }
+ std::string GetAuthor() const { return this->Author; }
+ std::string GetFile() const { return this->File; }
+
+protected:
+ void StartElement(const char* name, const char** atts)
+ {
+ if ( strcmp(name, "target") == 0 ) {
+ const char* file = this->FindAttribute(atts, "path");
+ if (file) {
+ this->File = file;
+ }
+ } else if ( strcmp(name, "wc-status") == 0 ) {
+ const char* rev = this->FindAttribute(atts, "revision");
+ if (rev) {
+ this->WCRevision = atoi(rev);
+ }
+ } else if ( strcmp(name, "commit") == 0 ) {
+ const char* rev = this->FindAttribute(atts, "revision");
+ if (rev) {
+ this->CommitRevision = atoi(rev);
+ }
+ }
+ this->CharacterData.erase(this->CharacterData.begin(),
+ this->CharacterData.end());
+ }
+ void EndElement(const char* name)
+ {
+ if ( strcmp(name, "author") == 0 ) {
+ this->Author.assign(&(*(this->CharacterData.begin())),
+ this->CharacterData.size());
+ }
+ this->CharacterData.erase(this->CharacterData.begin(),
+ this->CharacterData.end());
+ }
+
+ void CharacterDataHandler(const char* data, int length)
+ {
+ this->CharacterData.insert(this->CharacterData.end(), data, data+length);
+ }
+ const char* FindAttribute( const char** atts, const char* attribute )
+ {
+ if ( !atts || !attribute )
+ {
+ return 0;
+ }
+ const char **atr = atts;
+ while ( *atr && **atr && **(atr+1) )
+ {
+ if ( strcmp(*atr, attribute) == 0 )
+ {
+ return *(atr+1);
+ }
+ atr+=2;
+ }
+ return 0;
+ }
+
+
+private:
+
+ std::vector<char> CharacterData;
+ cmCTestUpdateHandler* UpdateHandler;
+ std::string File;
+ std::string Author;
+ int WCRevision;
+ int CommitRevision;
+};
+//**********************************************************************
+//----------------------------------------------------------------------
+
+
//----------------------------------------------------------------------
cmCTestUpdateHandler::cmCTestUpdateHandler()
{
}
@@ -645,11 +745,11 @@
std::string current_path = "<no-path>";
bool first_file = true;
cmCTestUpdateHandler::AuthorsToUpdatesMap authors_files_map;
int numUpdated = 0;
- int numModiefied = 0;
+ int numModified = 0;
int numConflicting = 0;
// In subversion, get the latest revision
if ( updateType == cmCTestUpdateHandler::e_SVN )
{
for ( cc= 0; cc < lines.size(); cc ++ )
@@ -702,11 +802,11 @@
bool modifiedOrConflict = false;
if ( mod == 'X')
{
continue;
}
- if ( mod != 'M' && mod != 'C' && mod != 'G' )
+ if ( mod == 'M' || mod == 'C' || mod == 'G' || mod == 'U')
{
count ++;
modifiedOrConflict = true;
}
const char* file = upFile.c_str();
@@ -721,23 +821,22 @@
{
case cmCTestUpdateHandler::e_CVS:
logcommand = updateCommand + " -z3 log -N \"" + file + "\"";
break;
case cmCTestUpdateHandler::e_SVN:
- if ( svn_latest_revision > 0 &&
- svn_latest_revision > svn_current_revision )
+ if ( svn_latest_revision > 0)
{
cmOStringStream logCommandStream;
logCommandStream << updateCommand << " log -r "
<< svn_current_revision << ":" << svn_latest_revision
<< " --xml \"" << file << "\"";
logcommand = logCommandStream.str();
}
else
{
logcommand = updateCommand +
- " status --verbose \"" + file + "\"";
+ " status --verbose --xml \"" + file + "\"";
svn_use_status = 1;
}
break;
}
cmCTestLog(this->CTest, DEBUG, "Do log: " << logcommand << std::endl);
@@ -752,281 +851,283 @@
ofs << " Errors: " << errors.c_str() << std::endl;
if ( ofs )
{
ofs << output << std::endl;
}
- }
- if ( res )
- {
- cmCTestLog(this->CTest, DEBUG, output << std::endl);
- std::string::size_type sline = 0;
- std::string srevision1 = "Unknown";
- std::string sdate1 = "Unknown";
- std::string sauthor1 = "Unknown";
- std::string semail1 = "Unknown";
- std::string comment1 = "";
- std::string srevision2 = "Unknown";
- std::string sdate2 = "Unknown";
- std::string sauthor2 = "Unknown";
- std::string comment2 = "";
- std::string semail2 = "Unknown";
- if ( updateType == cmCTestUpdateHandler::e_CVS )
+ if ( res )
{
- bool have_first = false;
- bool have_second = false;
- std::vector<cmStdString> ulines;
- cmSystemTools::Split(output.c_str(), ulines);
- for ( kk = 0; kk < ulines.size(); kk ++ )
+ cmCTestLog(this->CTest, DEBUG, output << std::endl);
+ std::string::size_type sline = 0;
+ std::string srevision1 = "Unknown";
+ std::string sdate1 = "Unknown";
+ std::string sauthor1 = "Unknown";
+ std::string semail1 = "Unknown";
+ std::string comment1 = "";
+ std::string srevision2 = "Unknown";
+ std::string sdate2 = "Unknown";
+ std::string sauthor2 = "Unknown";
+ std::string comment2 = "";
+ std::string semail2 = "Unknown";
+ if ( updateType == cmCTestUpdateHandler::e_CVS )
{
- const char* clp = ulines[kk].c_str();
- if ( !have_second && !sline && cvs_revision_regex.find(clp) )
+ bool have_first = false;
+ bool have_second = false;
+ std::vector<cmStdString> ulines;
+ cmSystemTools::Split(output.c_str(), ulines);
+ for ( kk = 0; kk < ulines.size(); kk ++ )
{
- if ( !have_first )
+ const char* clp = ulines[kk].c_str();
+ if ( !have_second && !sline && cvs_revision_regex.find(clp) )
{
- srevision1 = cvs_revision_regex.match(1);
+ if ( !have_first )
+ {
+ srevision1 = cvs_revision_regex.match(1);
+ }
+ else
+ {
+ srevision2 = cvs_revision_regex.match(1);
+ }
}
- else
+ else if ( !have_second && !sline &&
+ cvs_date_author_regex.find(clp) )
{
- srevision2 = cvs_revision_regex.match(1);
+ sline = kk + 1;
+ if ( !have_first )
+ {
+ sdate1 = cvs_date_author_regex.match(1);
+ sauthor1 = cvs_date_author_regex.match(2);
+ }
+ else
+ {
+ sdate2 = cvs_date_author_regex.match(1);
+ sauthor2 = cvs_date_author_regex.match(2);
+ }
}
- }
- else if ( !have_second && !sline &&
- cvs_date_author_regex.find(clp) )
- {
- sline = kk + 1;
- if ( !have_first )
+ else if ( sline && cvs_end_of_comment_regex.find(clp) ||
+ cvs_end_of_file_regex.find(clp))
{
- sdate1 = cvs_date_author_regex.match(1);
- sauthor1 = cvs_date_author_regex.match(2);
+ if ( !have_first )
+ {
+ have_first = true;
+ }
+ else if ( !have_second )
+ {
+ have_second = true;
+ }
+ sline = 0;
}
- else
+ else if ( sline )
{
- sdate2 = cvs_date_author_regex.match(1);
- sauthor2 = cvs_date_author_regex.match(2);
+ if ( !have_first )
+ {
+ comment1 += clp;
+ comment1 += "\n";
+ }
+ else
+ {
+ comment2 += clp;
+ comment2 += "\n";
+ }
}
}
- else if ( sline && cvs_end_of_comment_regex.find(clp) ||
- cvs_end_of_file_regex.find(clp))
- {
- if ( !have_first )
+ }
+ else if ( updateType == cmCTestUpdateHandler::e_SVN )
+ {
+ if ( svn_use_status )
{
- have_first = true;
+ cmCTestUpdateHandlerSVNStatusXMLParser parser(this);
+ cmOStringStream str;
+ str << svn_current_revision;
+ srevision1 = str.str();
+ if ( !parser.Parse(output.c_str()) )
+ {
+ cmCTestLog(this->CTest, ERROR_MESSAGE,
+ "Bad output from SVN status command: " << output
+ << std::endl);
+ }
+ else if ( parser.GetFile() != file )
+ {
+ cmCTestLog(this->CTest, ERROR_MESSAGE,
+ "Bad output from SVN status command. "
+ "The file name returned: \""
+ << parser.GetFile()
+ << "\" was different than the file specified: \"" << file
+ << "\"" << std::endl);
+ }
+ else
+ {
+ int comrev = parser.GetCommitRevision();
+ cmOStringStream comRevStream;
+ comRevStream << comrev;
+ srevision1 = comRevStream.str();
+ if (svn_current_revision < comrev)
+ {
+ srevision2 = str.str();
+ }
+ sauthor1 = parser.GetAuthor();
+ }
}
- else if ( !have_second )
+ else
{
- have_second = true;
+ cmCTestUpdateHandlerSVNXMLParser parser(this);
+ if ( parser.Parse(output.c_str()) )
+ {
+ int minrev = parser.GetMinRevision();
+ int maxrev = parser.GetMaxRevision();
+ cmCTestUpdateHandlerSVNXMLParser::
+ t_VectorOfCommits::iterator it;
+ for ( it = parser.GetCommits()->begin();
+ it != parser.GetCommits()->end();
+ ++ it )
+ {
+ if ( it->Revision == maxrev )
+ {
+ cmOStringStream mRevStream;
+ mRevStream << maxrev;
+ srevision1 = mRevStream.str();
+ sauthor1 = it->Author;
+ comment1 = it->Message;
+ sdate1 = it->Date;
+ }
+ else if ( it->Revision == minrev )
+ {
+ cmOStringStream mRevStream;
+ mRevStream << minrev;
+ srevision2 = mRevStream.str();
+ sauthor2 = it->Author;
+ comment2 = it->Message;
+ sdate2 = it->Date;
+ }
+ }
+ }
}
- sline = 0;
- }
- else if ( sline )
- {
- if ( !have_first )
+ }
+ if ( mod == 'M' )
+ {
+ comment1 = "Locally modified file\n";
+ sauthor1 = "Local User";
+ }
+ if ( mod == 'D' )
+ {
+ comment1 += " - Removed file\n";
+ }
+ if ( mod == 'C' )
+ {
+ comment1 = "Conflict while updating\n";
+ sauthor1 = "Local User";
+ }
+ std::string path = cmSystemTools::GetFilenamePath(file);
+ std::string fname = cmSystemTools::GetFilenameName(file);
+ if ( path != current_path )
+ {
+ if ( !first_file )
{
- comment1 += clp;
- comment1 += "\n";
+ os << "\t</Directory>" << std::endl;
}
else
{
- comment2 += clp;
- comment2 += "\n";
+ first_file = false;
}
- }
+ os << "\t<Directory>\n"
+ << "\t\t<Name>" << path << "</Name>" << std::endl;
}
- }
- else if ( updateType == cmCTestUpdateHandler::e_SVN )
- {
- if ( svn_use_status )
+ if ( mod == 'C' )
{
- cmOStringStream str;
- str << svn_current_revision;
- srevision1 = str.str();
- if (!svn_status_line_regex.find(output))
- {
- cmCTestLog(this->CTest, ERROR_MESSAGE,
- "Bad output from SVN status command: " << output
- << std::endl);
- }
- else if ( svn_status_line_regex.match(4) != file )
- {
- cmCTestLog(this->CTest, ERROR_MESSAGE,
- "Bad output from SVN status command. "
- "The file name returned: \""
- << svn_status_line_regex.match(4)
- << "\" was different than the file specified: \"" << file
- << "\"" << std::endl);
- }
- else
- {
- srevision1 = svn_status_line_regex.match(2);
- int latest_revision = atoi(
- svn_status_line_regex.match(2).c_str());
- if ( svn_current_revision < latest_revision )
- {
- srevision2 = str.str();
- }
- sauthor1 = svn_status_line_regex.match(3);
- }
+ numConflicting ++;
+ os << "\t<Conflicting>" << std::endl;
+ }
+ else if ( mod == 'G' )
+ {
+ numConflicting ++;
+ os << "\t<Conflicting>" << std::endl;
+ }
+ else if ( mod == 'M' )
+ {
+ numModified ++;
+ os << "\t<Modified>" << std::endl;
}
else
{
- cmCTestUpdateHandlerSVNXMLParser parser(this);
- if ( parser.Parse(output.c_str()) )
- {
- int minrev = parser.GetMinRevision();
- int maxrev = parser.GetMaxRevision();
- cmCTestUpdateHandlerSVNXMLParser::
- t_VectorOfCommits::iterator it;
- for ( it = parser.GetCommits()->begin();
- it != parser.GetCommits()->end();
- ++ it )
- {
- if ( it->Revision == maxrev )
- {
- cmOStringStream mRevStream;
- mRevStream << maxrev;
- srevision1 = mRevStream.str();
- sauthor1 = it->Author;
- comment1 = it->Message;
- sdate1 = it->Date;
- }
- else if ( it->Revision == minrev )
- {
- cmOStringStream mRevStream;
- mRevStream << minrev;
- srevision2 = mRevStream.str();
- sauthor2 = it->Author;
- comment2 = it->Message;
- sdate2 = it->Date;
- }
- }
- }
+ numUpdated ++;
+ os << "\t<Updated>" << std::endl;
}
- }
- if ( mod == 'M' )
- {
- comment1 = "Locally modified file\n";
- sauthor1 = "Local User";
- }
- if ( mod == 'D' )
- {
- comment1 += " - Removed file\n";
- }
- if ( mod == 'C' )
- {
- comment1 = "Conflict while updating\n";
- sauthor1 = "Local User";
- }
- std::string path = cmSystemTools::GetFilenamePath(file);
- std::string fname = cmSystemTools::GetFilenameName(file);
- if ( path != current_path )
- {
- if ( !first_file )
+ if ( srevision2 == "Unknown" )
{
- os << "\t</Directory>" << std::endl;
+ srevision2 = srevision1;
+ }
+ cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "File: "
+ << path.c_str() << " / " << fname.c_str() << " was updated by "
+ << sauthor1.c_str() << " to revision: " << srevision1.c_str()
+ << " from revision: " << srevision2.c_str() << std::endl);
+ os << "\t\t<File Directory=\"" << cmCTest::MakeXMLSafe(path) << "\">"
+ << cmCTest::MakeXMLSafe(fname)
+ << "</File>\n"
+ << "\t\t<Directory>" << cmCTest::MakeXMLSafe(path)
+ << "</Directory>\n"
+ << "\t\t<FullName>" << cmCTest::MakeXMLSafe(file) << "</FullName>\n"
+ << "\t\t<CheckinDate>" << cmCTest::MakeXMLSafe(sdate1)
+ << "</CheckinDate>\n"
+ << "\t\t<Author>" << cmCTest::MakeXMLSafe(sauthor1) << "</Author>\n"
+ << "\t\t<Email>" << cmCTest::MakeXMLSafe(semail1) << "</Email>\n"
+ << "\t\t<Log>" << cmCTest::MakeXMLSafe(comment1) << "</Log>\n"
+ << "\t\t<Revision>" << srevision1 << "</Revision>\n"
+ << "\t\t<PriorRevision>" << srevision2 << "</PriorRevision>"
+ << std::endl;
+ if ( srevision2 != srevision1 )
+ {
+ os
+ << "\t\t<Revisions>\n"
+ << "\t\t\t<Revision>" << srevision1 << "</Revision>\n"
+ << "\t\t\t<PreviousRevision>" << srevision2
+ << "</PreviousRevision>\n"
+ << "\t\t\t<Author>" << cmCTest::MakeXMLSafe(sauthor1)
+ << "</Author>\n"
+ << "\t\t\t<Date>" << cmCTest::MakeXMLSafe(sdate1)
+ << "</Date>\n"
+ << "\t\t\t<Comment>" << cmCTest::MakeXMLSafe(comment1)
+ << "</Comment>\n"
+ << "\t\t\t<Email>" << cmCTest::MakeXMLSafe(semail1)
+ << "</Email>\n"
+ << "\t\t</Revisions>\n"
+ << "\t\t<Revisions>\n"
+ << "\t\t\t<Revision>" << srevision2 << "</Revision>\n"
+ << "\t\t\t<PreviousRevision>" << srevision2
+ << "</PreviousRevision>\n"
+ << "\t\t\t<Author>" << cmCTest::MakeXMLSafe(sauthor2)
+ << "</Author>\n"
+ << "\t\t\t<Date>" << cmCTest::MakeXMLSafe(sdate2)
+ << "</Date>\n"
+ << "\t\t\t<Comment>" << cmCTest::MakeXMLSafe(comment2)
+ << "</Comment>\n"
+ << "\t\t\t<Email>" << cmCTest::MakeXMLSafe(semail2)
+ << "</Email>\n"
+ << "\t\t</Revisions>" << std::endl;
+ }
+ if ( mod == 'C' )
+ {
+ os << "\t</Conflicting>" << std::endl;
+ }
+ else if ( mod == 'G' )
+ {
+ os << "\t</Conflicting>" << std::endl;
+ }
+ else if ( mod == 'M' )
+ {
+ os << "\t</Modified>" << std::endl;
}
else
{
- first_file = false;
+ os << "\t</Updated>" << std::endl;
}
- os << "\t<Directory>\n"
- << "\t\t<Name>" << path << "</Name>" << std::endl;
- }
- if ( mod == 'C' )
- {
- numConflicting ++;
- os << "\t<Conflicting>" << std::endl;
- }
- else if ( mod == 'G' )
- {
- numConflicting ++;
- os << "\t<Conflicting>" << std::endl;
- }
- else if ( mod == 'M' )
- {
- numModiefied ++;
- os << "\t<Modified>" << std::endl;
- }
- else
- {
- numUpdated ++;
- os << "\t<Updated>" << std::endl;
- }
- if ( srevision2 == "Unknown" )
- {
- srevision2 = srevision1;
- }
- cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, "File: "
- << path.c_str() << " / " << fname.c_str() << " was updated by "
- << sauthor1.c_str() << " to revision: " << srevision1.c_str()
- << " from revision: " << srevision2.c_str() << std::endl);
- os << "\t\t<File Directory=\"" << cmCTest::MakeXMLSafe(path) << "\">"
- << cmCTest::MakeXMLSafe(fname)
- << "</File>\n"
- << "\t\t<Directory>" << cmCTest::MakeXMLSafe(path)
- << "</Directory>\n"
- << "\t\t<FullName>" << cmCTest::MakeXMLSafe(file) << "</FullName>\n"
- << "\t\t<CheckinDate>" << cmCTest::MakeXMLSafe(sdate1)
- << "</CheckinDate>\n"
- << "\t\t<Author>" << cmCTest::MakeXMLSafe(sauthor1) << "</Author>\n"
- << "\t\t<Email>" << cmCTest::MakeXMLSafe(semail1) << "</Email>\n"
- << "\t\t<Log>" << cmCTest::MakeXMLSafe(comment1) << "</Log>\n"
- << "\t\t<Revision>" << srevision1 << "</Revision>\n"
- << "\t\t<PriorRevision>" << srevision2 << "</PriorRevision>"
- << std::endl;
- if ( srevision2 != srevision1 )
- {
- os
- << "\t\t<Revisions>\n"
- << "\t\t\t<Revision>" << srevision1 << "</Revision>\n"
- << "\t\t\t<PreviousRevision>" << srevision2
- << "</PreviousRevision>\n"
- << "\t\t\t<Author>" << cmCTest::MakeXMLSafe(sauthor1)
- << "</Author>\n"
- << "\t\t\t<Date>" << cmCTest::MakeXMLSafe(sdate1)
- << "</Date>\n"
- << "\t\t\t<Comment>" << cmCTest::MakeXMLSafe(comment1)
- << "</Comment>\n"
- << "\t\t\t<Email>" << cmCTest::MakeXMLSafe(semail1)
- << "</Email>\n"
- << "\t\t</Revisions>\n"
- << "\t\t<Revisions>\n"
- << "\t\t\t<Revision>" << srevision2 << "</Revision>\n"
- << "\t\t\t<PreviousRevision>" << srevision2
- << "</PreviousRevision>\n"
- << "\t\t\t<Author>" << cmCTest::MakeXMLSafe(sauthor2)
- << "</Author>\n"
- << "\t\t\t<Date>" << cmCTest::MakeXMLSafe(sdate2)
- << "</Date>\n"
- << "\t\t\t<Comment>" << cmCTest::MakeXMLSafe(comment2)
- << "</Comment>\n"
- << "\t\t\t<Email>" << cmCTest::MakeXMLSafe(semail2)
- << "</Email>\n"
- << "\t\t</Revisions>" << std::endl;
- }
- if ( mod == 'C' )
- {
- os << "\t</Conflicting>" << std::endl;
- }
- else if ( mod == 'G' )
- {
- os << "\t</Conflicting>" << std::endl;
- }
- else if ( mod == 'M' )
- {
- os << "\t</Modified>" << std::endl;
- }
- else
- {
- os << "\t</Updated>" << std::endl;
- }
- cmCTestUpdateHandler::UpdateFiles *u = &authors_files_map[sauthor1];
- cmCTestUpdateHandler::StringPair p;
- p.first = path;
- p.second = fname;
- u->push_back(p);
+ cmCTestUpdateHandler::UpdateFiles *u = &authors_files_map[sauthor1];
+ cmCTestUpdateHandler::StringPair p;
+ p.first = path;
+ p.second = fname;
+ u->push_back(p);
- current_path = path;
+ current_path = path;
+ }
}
file_count ++;
}
}
if ( file_count )
@@ -1036,23 +1137,23 @@
if ( numUpdated )
{
cmCTestLog(this->CTest, HANDLER_OUTPUT, " Found " << numUpdated
<< " updated files" << std::endl);
}
- if ( numModiefied )
+ if ( numModified )
{
- cmCTestLog(this->CTest, HANDLER_OUTPUT, " Found " << numModiefied
+ cmCTestLog(this->CTest, HANDLER_OUTPUT, " Found " << numModified
<< " locally modified files"
<< std::endl);
}
if ( numConflicting )
{
cmCTestLog(this->CTest, HANDLER_OUTPUT, " Found " << numConflicting
<< " conflicting files"
<< std::endl);
}
- if ( numModiefied == 0 && numConflicting == 0 && numUpdated == 0 )
+ if ( numModified == 0 && numConflicting == 0 && numUpdated == 0 )
{
cmCTestLog(this->CTest, HANDLER_OUTPUT, " Project is up-to-date"
<< std::endl);
}
if ( !first_file )
@@ -1083,11 +1184,11 @@
<< "</EndTime>\n"
<< "<ElapsedMinutes>" <<
static_cast<int>((cmSystemTools::GetTime() - elapsed_time_start)/6)/10.0
<< "</ElapsedMinutes>\n"
<< "\t<UpdateReturnStatus>";
- if ( numModiefied > 0 || numConflicting > 0 )
+ if ( numModified > 0 || numConflicting > 0 )
{
os << "Update error: There are modified or conflicting files in the "
"repository";
cmCTestLog(this->CTest, ERROR_MESSAGE,
" There are modified or conflicting files in the repository"
|