Merge topic 'ctest-git-send-committer'
5992526
CTest: Factor out duplicate Git author/committer code307b8a6
CTest git update should pass the committer as well as the author
This commit is contained in:
commit
ea38628366
|
@ -503,28 +503,15 @@ private:
|
|||
this->ParsePerson(this->Line.c_str()+7, author);
|
||||
this->Rev.Author = author.Name;
|
||||
this->Rev.EMail = author.EMail;
|
||||
|
||||
// Convert the time to a human-readable format that is also easy
|
||||
// to machine-parse: "CCYY-MM-DD hh:mm:ss".
|
||||
time_t seconds = static_cast<time_t>(author.Time);
|
||||
struct tm* t = gmtime(&seconds);
|
||||
char dt[1024];
|
||||
sprintf(dt, "%04d-%02d-%02d %02d:%02d:%02d",
|
||||
t->tm_year+1900, t->tm_mon+1, t->tm_mday,
|
||||
t->tm_hour, t->tm_min, t->tm_sec);
|
||||
this->Rev.Date = dt;
|
||||
|
||||
// Add the time-zone field "+zone" or "-zone".
|
||||
char tz[32];
|
||||
if(author.TimeZone >= 0)
|
||||
{
|
||||
sprintf(tz, " +%04ld", author.TimeZone);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(tz, " -%04ld", -author.TimeZone);
|
||||
}
|
||||
this->Rev.Date += tz;
|
||||
this->Rev.Date = this->FormatDateTime(author);
|
||||
}
|
||||
else if(strncmp(this->Line.c_str(), "committer ", 10) == 0)
|
||||
{
|
||||
Person committer;
|
||||
this->ParsePerson(this->Line.c_str()+10, committer);
|
||||
this->Rev.Committer = committer.Name;
|
||||
this->Rev.CommitterEMail = committer.EMail;
|
||||
this->Rev.CommitDate = this->FormatDateTime(committer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -537,6 +524,32 @@ private:
|
|||
}
|
||||
this->Rev.Log += "\n";
|
||||
}
|
||||
|
||||
std::string FormatDateTime(Person const& person)
|
||||
{
|
||||
// Convert the time to a human-readable format that is also easy
|
||||
// to machine-parse: "CCYY-MM-DD hh:mm:ss".
|
||||
time_t seconds = static_cast<time_t>(person.Time);
|
||||
struct tm* t = gmtime(&seconds);
|
||||
char dt[1024];
|
||||
sprintf(dt, "%04d-%02d-%02d %02d:%02d:%02d",
|
||||
t->tm_year+1900, t->tm_mon+1, t->tm_mday,
|
||||
t->tm_hour, t->tm_min, t->tm_sec);
|
||||
std::string out = dt;
|
||||
|
||||
// Add the time-zone field "+zone" or "-zone".
|
||||
char tz[32];
|
||||
if(person.TimeZone >= 0)
|
||||
{
|
||||
sprintf(tz, " +%04ld", person.TimeZone);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(tz, " -%04ld", -person.TimeZone);
|
||||
}
|
||||
out += tz;
|
||||
return out;
|
||||
}
|
||||
};
|
||||
|
||||
char const cmCTestGIT::CommitParser::SectionSep[SectionCount] =
|
||||
|
|
|
@ -228,6 +228,11 @@ void cmCTestVC::WriteXMLEntry(std::ostream& xml,
|
|||
<< "\t\t\t<CheckinDate>" << cmXMLSafe(rev.Date) << "</CheckinDate>\n"
|
||||
<< "\t\t\t<Author>" << cmXMLSafe(rev.Author) << "</Author>\n"
|
||||
<< "\t\t\t<Email>" << cmXMLSafe(rev.EMail) << "</Email>\n"
|
||||
<< "\t\t\t<Committer>" << cmXMLSafe(rev.Committer) << "</Committer>\n"
|
||||
<< "\t\t\t<CommitterEmail>" << cmXMLSafe(rev.CommitterEMail)
|
||||
<< "</CommitterEmail>\n"
|
||||
<< "\t\t\t<CommitDate>" << cmXMLSafe(rev.CommitDate)
|
||||
<< "</CommitDate>\n"
|
||||
<< "\t\t\t<Log>" << cmXMLSafe(rev.Log) << "</Log>\n"
|
||||
<< "\t\t\t<Revision>" << cmXMLSafe(rev.Rev) << "</Revision>\n"
|
||||
<< "\t\t\t<PriorRevision>" << cmXMLSafe(prior) << "</PriorRevision>\n"
|
||||
|
|
|
@ -74,6 +74,9 @@ protected:
|
|||
std::string Date;
|
||||
std::string Author;
|
||||
std::string EMail;
|
||||
std::string Committer;
|
||||
std::string CommitterEMail;
|
||||
std::string CommitDate;
|
||||
std::string Log;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue