From 08340228b68981d3c556437e77f8f0cd4244d017 Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Fri, 10 Jul 2015 16:43:12 +0200
Subject: [PATCH] BUG: detect the type of repository (hg/git)

---
 CMake/SourceStatus.cmake | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/CMake/SourceStatus.cmake b/CMake/SourceStatus.cmake
index b6d94836dc..e8837984b9 100644
--- a/CMake/SourceStatus.cmake
+++ b/CMake/SourceStatus.cmake
@@ -1,3 +1,4 @@
+if(EXISTS "${PROJECT_SOURCE_DIR}/.hg")
 find_package(Mercurial)
 if(Mercurial_FOUND)
   message(STATUS "Repository status :")
@@ -24,3 +25,27 @@ if(Mercurial_FOUND)
   endif()
 
 endif()
+endif()
+
+if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
+  find_package(Git)
+  if(GIT_FOUND)
+    execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=oneline
+      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+      OUTPUT_VARIABLE OTB_WC_VERSION
+      OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+    execute_process(COMMAND ${GIT_EXECUTABLE} status -s
+      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+      OUTPUT_VARIABLE OTB_WC_STATUS
+      OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+    message(STATUS "Repository status :")
+    message(STATUS "  Repository revision is ${OTB_WC_VERSION}")
+    if(OTB_WC_STATUS)
+      message(STATUS "  Local file modifications:")
+      string(REPLACE "\n" "\n--     " OTB_WC_STATUS_PRETTYPRINT "    ${OTB_WC_STATUS}")
+      message(STATUS "${OTB_WC_STATUS_PRETTYPRINT}")
+    else()
+      message(STATUS "  No files modified locally")
+    endif()
+  endif()
+endif()
-- 
GitLab