From 7ab2de6b639e90c8bc39feb99d74751a0b72d73b Mon Sep 17 00:00:00 2001 From: jef Date: Tue, 16 Nov 2010 20:20:27 +0000 Subject: [PATCH] add some git support git-svn-id: http://svn.osgeo.org/qgis/trunk@14691 c8812cc2-4d05-0410-92ff-de0c093fc19c --- CMakeLists.txt | 42 +++++++++++++++++++++++++++------------ scripts/prepare-commit.sh | 18 ++++++++++++++--- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5dfb3ebc0a6..f712b7311ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -429,6 +429,7 @@ LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/src/core ${CMAKE_BINARY_DIR}/src/gui) # create qgssvnversion.h FIND_FILE(SVN_MARKER entries PATHS ${CMAKE_SOURCE_DIR}/.svn) +FIND_FILE(GIT_MARKER index PATHS ${CMAKE_SOURCE_DIR}/.git) IF (SVN_MARKER) # See if we have svn installed @@ -436,26 +437,41 @@ IF (SVN_MARKER) IF(SVNVERSION) IF(MSVC) - ADD_CUSTOM_COMMAND( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h - COMMAND for /f usebackq %%a in "(`\"${SVNVERSION}\"`)" do echo \#define QGSSVNVERSION \"%%a\" >${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h - MAIN_DEPENDENCY ${SVN_MARKER} - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - ) + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h + COMMAND for /f usebackq %%a in "(`\"${SVNVERSION}\"`)" do echo \#define QGSSVNVERSION \"%%a\" >${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h + MAIN_DEPENDENCY ${SVN_MARKER} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) ELSE(MSVC) - ADD_CUSTOM_COMMAND( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h - COMMAND echo \\\#define QGSSVNVERSION \\\"`${SVNVERSION}`\\\" >${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h - MAIN_DEPENDENCY ${SVN_MARKER} - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - ) + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h + COMMAND echo \\\#define QGSSVNVERSION \\\"`${SVNVERSION}`\\\" >${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h + MAIN_DEPENDENCY ${SVN_MARKER} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) ENDIF(MSVC) ELSE(SVNVERSION) MESSAGE(STATUS "svnversion not found - version will be unknown") FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h "#define QGSSVNVERSION \"unknown\"") ENDIF (SVNVERSION) ELSE (SVN_MARKER) - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h "#define QGSSVNVERSION \"exported\"") + IF (GIT_MARKER) + FIND_PROGRAM(GIT git PATHS c:/cygwin/bin) + IF(GIT) + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h + COMMAND echo \\\#define QGSSVNVERSION \\\"`${GIT} svn info | sed -ne "s/Revision: //p"`\\\" >${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h + MAIN_DEPENDENCY ${GIT_MARKER} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) + ELSE(GIT) + MESSAGE(STATUS "git marker, but no git found - version will be unknown") + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h "#define QGSSVNVERSION \"unknown\"") + ENDIF(GIT) + ELSE (GIT_MARKER) + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h "#define QGSSVNVERSION \"exported\"") + ENDIF (GIT_MARKER) ENDIF (SVN_MARKER) ADD_CUSTOM_TARGET(svnversion ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h) diff --git a/scripts/prepare-commit.sh b/scripts/prepare-commit.sh index 9f3d119363c..89205ce736c 100755 --- a/scripts/prepare-commit.sh +++ b/scripts/prepare-commit.sh @@ -17,7 +17,14 @@ fi set -e # determine changed files -MODIFIED=$(svn status | sed -ne "s/^[MA] *//p") +if [ -d .svn ]; then + MODIFIED=$(svn status | sed -ne "s/^[MA] *//p") +elif [ -d .git ]; then + MODIFIED=$(git status | sed -rne "s/^# (modified|new file): *//p") +else + echo No working copy + exit 1 +fi if [ -z "$MODIFIED" ]; then echo nothing was modified @@ -25,8 +32,13 @@ if [ -z "$MODIFIED" ]; then fi # save original changes -REV=$(svn info | sed -ne "s/Revision: //p") -svn diff >r$REV.diff +if [ -d .svn ]; then + REV=$(svn info | sed -ne "s/Revision: //p") + svn diff >r$REV.diff +elif [ -d .git ]; then + REV=$(git svn info | sed -ne "s/Revision //p") + git diff >r$REV.diff +fi ASTYLEDIFF=astyle.r$REV.diff >$ASTYLEDIFF