summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestGIT.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-06-23 13:14:43 (GMT)
committerBrad King <brad.king@kitware.com>2010-06-23 13:14:43 (GMT)
commitbbfe241c6a4386a39ebb93cdb70a8390eab14eef (patch)
tree054d21feea9aa984dfe692a4d562b68c091e2b8a /Source/CTest/cmCTestGIT.cxx
parentb1418625645ebef66e54d75004c82d88807e154f (diff)
downloadCMake-bbfe241c6a4386a39ebb93cdb70a8390eab14eef.zip
CMake-bbfe241c6a4386a39ebb93cdb70a8390eab14eef.tar.gz
CMake-bbfe241c6a4386a39ebb93cdb70a8390eab14eef.tar.bz2
CTest: Parse empty Git commits correctly
Git's diff-tree format has no '\n'-terminated blank line at the end of its commit message body block if there are no diff lines. Instead the message body is terminated by '\0' and there is no diff section. Teach CTest to parse the format in this case.
Diffstat (limited to 'Source/CTest/cmCTestGIT.cxx')
-rw-r--r--Source/CTest/cmCTestGIT.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/CTest/cmCTestGIT.cxx b/Source/CTest/cmCTestGIT.cxx
index 6c3631c..a49c852 100644
--- a/Source/CTest/cmCTestGIT.cxx
+++ b/Source/CTest/cmCTestGIT.cxx
@@ -317,8 +317,12 @@ protected:
\n
Log message indented by (4) spaces\n
(even blank lines have the spaces)\n
+ [[
\n
[Diff format]
+ OR
+ \0
+ ]]
The header may have more fields. See 'git help diff-tree'.
*/
@@ -372,6 +376,11 @@ private:
{
if(this->Line.empty())
{
+ if(this->Section == SectionBody && this->LineEnd == '\0')
+ {
+ // Skip SectionDiff
+ this->NextSection();
+ }
this->NextSection();
}
else