From 7c5b6ed5c851266b4f6dae5ef864509627acdaf8 Mon Sep 17 00:00:00 2001 From: "Daniele E. Domenichelli" Date: Thu, 17 Sep 2015 11:41:07 +0200 Subject: [PATCH] ExternalProject: Use "git stash save --all" only if supported (#15722) The --all option for git-stash wasn't introduced until git version 1.7.6. --- Help/release/dev/ExternalProject_stash_save_all.rst | 5 +++++ Modules/ExternalProject.cmake | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 Help/release/dev/ExternalProject_stash_save_all.rst diff --git a/Help/release/dev/ExternalProject_stash_save_all.rst b/Help/release/dev/ExternalProject_stash_save_all.rst new file mode 100644 index 000000000..e00ed4486 --- /dev/null +++ b/Help/release/dev/ExternalProject_stash_save_all.rst @@ -0,0 +1,5 @@ +ExternalProject_stash_save_all +------------------------------ + +* Use "git stash save --all" only if supported. The --all option for git-stash + wasn't introduced until git version 1.7.6. diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index db61d23ab..90ceedf4c 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -646,6 +646,11 @@ endfunction() function(_ep_write_gitupdate_script script_filename git_EXECUTABLE git_tag git_submodules git_repository work_dir) + if(NOT GIT_VERSION_STRING VERSION_LESS 1.7.6) + set(git_stash_save_options --all --quiet) + else() + set(git_stash_save_options --quiet) + endif() file(WRITE ${script_filename} "if(\"${git_tag}\" STREQUAL \"\") message(FATAL_ERROR \"Tag for git checkout should not be empty.\") @@ -724,7 +729,7 @@ if(error_code OR is_remote_ref OR NOT (\"\${tag_sha}\" STREQUAL \"\${head_sha}\" # perform git pull --rebase if(need_stash) execute_process( - COMMAND \"${git_EXECUTABLE}\" stash save --all --quiet + COMMAND \"${git_EXECUTABLE}\" stash save ${git_stash_save_options} WORKING_DIRECTORY \"${work_dir}\" RESULT_VARIABLE error_code )