Browse Source

ExternalProject: Use ${ref}^0 to avoid MSYS/Cygwin shell substitutions

In 5e941a545b (ExternalProject: Ensure git fetch if updating to hash we
don't have yet, 2021-05-09), the form ${ref}^{commit} was used to ensure
the ref was treated as a commit. When running under a MSYS2 or
Cygwin shell, the {commit} part can be translated by the shell, leaving it as
${ref}^commit, which git doesn't understand. Use the equivalent but
safer form ${ref}^0, since it won't be subject to the shell substitution
issue.

Fixes: #22299
Craig Scott 4 years ago
parent
commit
360ff17dc6
1 changed files with 1 additions and 1 deletions
  1. 1 1
      Modules/ExternalProject-gitupdate.cmake.in

+ 1 - 1
Modules/ExternalProject-gitupdate.cmake.in

@@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.5)
 
 function(get_hash_for_ref ref out_var err_var)
   execute_process(
-    COMMAND "@git_EXECUTABLE@" rev-parse "${ref}^{commit}"
+    COMMAND "@git_EXECUTABLE@" rev-parse "${ref}^0"
     WORKING_DIRECTORY "@work_dir@"
     RESULT_VARIABLE error_code
     OUTPUT_VARIABLE ref_hash