forked from OSchip/llvm-project
[CMake] Update GetSVN.cmake to handle repo
Summary: When repo is used with git, 'clang --version' option does not display the correct revision information (i.e. git hash on TOP) as the following: clang version 6.0.0 ---> clang version 6.0.0 (clang version) (llvm version) This is because repo also creates .git/svn folder as git-svn does and this makes repo with git uses "git svn info" command, which is only for git-svn, to retrieve its revision information, making null for the info. To correctly distinguish between git-svn and repo with git, the folder hierarchy to specify for git-svn should be .git/svn/refs as the "git svn info" command depends on the revision data in .git/svn/refs. This patch in turn makes repo with git passes through to the third macro, get_source_info_git, in get_source_info function, resulting in correctly retrieving the revision information for repo with git using "git log ..." command. This patch is tested with git, svn, git-svn, and repo with git. Reviewers: llvm-commits, probinson, rnk Reviewed By: rnk Subscribers: rnk, mehdi_amini, beanz, mgorny Differential Revision: https://reviews.llvm.org/D35532 llvm-svn: 312864
This commit is contained in:
parent
59562ecb35
commit
a290cef45d
|
@ -84,7 +84,7 @@ endmacro()
|
||||||
function(get_source_info path revision repository)
|
function(get_source_info path revision repository)
|
||||||
if (EXISTS "${path}/.svn")
|
if (EXISTS "${path}/.svn")
|
||||||
get_source_info_svn("${path}" revision repository)
|
get_source_info_svn("${path}" revision repository)
|
||||||
elseif (EXISTS "${path}/.git/svn")
|
elseif (EXISTS "${path}/.git/svn/refs")
|
||||||
get_source_info_git_svn("${path}" revision repository)
|
get_source_info_git_svn("${path}" revision repository)
|
||||||
elseif (EXISTS "${path}/.git")
|
elseif (EXISTS "${path}/.git")
|
||||||
get_source_info_git("${path}" revision repository)
|
get_source_info_git("${path}" revision repository)
|
||||||
|
|
Loading…
Reference in New Issue