Commit f1e47e6
CMake: use git rev-parse to get GIT_COMMIT_HASH
The old approach of reading .git/HEAD does not work when using git
worktrees, where the folder layout looks roughly like:
solvespace.git/ - bare clone (.git dir)
solvespace.git/work - example worktree containing master
solvespage.git/worktrees/work/ - .git dir of worktree
solvespage.git/worktrees/work/HEAD - actual HEAD ref for master
First attempt was to just get GIT_ROOT from `git rev-parse --git-dir` but
that wasn't enough, since:
1. GIT_ROOT points to solvespage.git/worktrees/work/
2. GIT_ROOT/HEAD points to refs/heads/master
3. GIT_ROOT/refs/heads/master does not exist but the old implementation
would want to use this to get the sha
so we need two invocations of git rev-parse
1. `git rev-parse --git-dir` to get GIT_DIR
needed for setting GIT_DEPENDS
2. `git rev-parse HEAD` to get the sha of the worktree's HEAD1 parent 5efc148 commit f1e47e6
1 file changed
Lines changed: 2 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
| 2 | + | |
| 3 | + | |
5 | 4 | | |
6 | 5 | | |
7 | 6 | | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | 7 | | |
27 | 8 | | |
28 | | - | |
29 | 9 | | |
30 | 10 | | |
31 | 11 | | |
| |||
0 commit comments