diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2019-01-10 21:57:07 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2019-01-10 21:57:07 +0000 |
| commit | ffcd37c5fd86eb79a1e29da23572504014faf29c (patch) | |
| tree | ade072c6a895cfc862861a2a3bfbd8bf5e130cbf | |
| parent | cb7d968f73f827ef81d224a9332b49787c351044 (diff) | |
| download | bcm5719-llvm-ffcd37c5fd86eb79a1e29da23572504014faf29c.tar.gz bcm5719-llvm-ffcd37c5fd86eb79a1e29da23572504014faf29c.zip | |
gn build: Use "git rev-parse --git-dir" to discover the path to the .git directory.
This makes it compatible with worktrees.
Differential Revision: https://reviews.llvm.org/D56422
llvm-svn: 350897
| -rwxr-xr-x | llvm/utils/gn/build/write_vcsrevision.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/llvm/utils/gn/build/write_vcsrevision.py b/llvm/utils/gn/build/write_vcsrevision.py index b9b3755526c..974004df915 100755 --- a/llvm/utils/gn/build/write_vcsrevision.py +++ b/llvm/utils/gn/build/write_vcsrevision.py @@ -12,7 +12,6 @@ import sys THIS_DIR = os.path.abspath(os.path.dirname(__file__)) LLVM_DIR = os.path.dirname(os.path.dirname(os.path.dirname(THIS_DIR))) -MONO_DIR = os.path.dirname(LLVM_DIR) def which(program): @@ -36,21 +35,23 @@ def main(): if os.path.isdir(os.path.join(LLVM_DIR, '.svn')): print('SVN support not implemented', file=sys.stderr) return 1 - if os.path.isdir(os.path.join(LLVM_DIR, '.git')): + if os.path.exists(os.path.join(LLVM_DIR, '.git')): print('non-mono-repo git support not implemented', file=sys.stderr) return 1 - git_dir = os.path.join(MONO_DIR, '.git') - if not os.path.isdir(git_dir): - print('.git dir not found at "%s"' % git_dir, file=sys.stderr) - return 1 - git, use_shell = which('git'), False if not git: git = which('git.exe') if not git: git = which('git.bat') use_shell = True + + git_dir = subprocess.check_output([git, 'rev-parse', '--git-dir'], + cwd=LLVM_DIR, shell=use_shell).strip() + if not os.path.isdir(git_dir): + print('.git dir not found at "%s"' % git_dir, file=sys.stderr) + return 1 + rev = subprocess.check_output([git, 'rev-parse', '--short', 'HEAD'], cwd=git_dir, shell=use_shell).decode().strip() # FIXME: add pizzas such as the svn revision read off a git note? |

