Browse Source

ExternalProject: Fix regression in GIT_TAG with remote branch name

The change in commit  v3.8.0-rc2~7^2 (ExternalProject: Run `git
checkout` with `--` to clarify arguments, 2017-02-24) broke the case of
`GIT_TAG some-remote-branch` because an explicit `--` means that the
preceding argument is a tree-ish instead of a branch.  Revert the change
and leave a comment.

Fixes: #16763
Brad King 8 years ago
parent
commit
6f3838c034
1 changed files with 4 additions and 1 deletions
  1. 4 1
      Modules/ExternalProject.cmake

+ 4 - 1
Modules/ExternalProject.cmake

@@ -600,8 +600,11 @@ if(error_code)
   message(FATAL_ERROR \"Failed to clone repository: '${git_repository}'\")
 endif()
 
+# Use `git checkout <branch>` even though this risks ambiguity with a
+# local path.  Unfortunately we cannot use `git checkout <tree-ish> --`
+# because that will not search for remote branch names, a common use case.
 execute_process(
-  COMMAND \"${git_EXECUTABLE}\" \${git_options} checkout ${git_tag} --
+  COMMAND \"${git_EXECUTABLE}\" \${git_options} checkout ${git_tag}
   WORKING_DIRECTORY \"${work_dir}/${src_name}\"
   RESULT_VARIABLE error_code
   )