Commit 28c48d8
committed
util/gitutil: Full/ShortCommit(): replace git show with git rev-parse
The FullCommit and ShortCommit methods are expected to simply get the
hash of HEAD. Using `git show` for this purpose is overkill because
`git show` can have side effects that are annoying when `docker build`
runs in a CI environment:
1) CI environments (e.g. CircleCI) may use blobless clones, where the
target repository is checked out using `git clone --filter=blob:none {url}`.
2) `git show` does more than just discover the hash of a specified revision:
in general, it needs parent commits and blobs to compute the diff. When
a blobless clone is used, `git show` may try to download these additional
blobs from the remote. From my experiments, this happens even when
`--quiet` or `--no-patch` is specified.
3) If the `docker build` step runs in an environment where Git is not configured
properly to download from the remote, the step may hang indefinitely, as it did
in my case with the following prompt:
The authenticity of host 'github.com (140.82.112.3)' can't be established.
ED25519 key fingerprint is SHA256:+....
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Notes on test fixes:
git rev-parse HEAD doesn't need any `--`, however, when it is called
on an empty repo git returns an error:
```
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
```
So, it is both IsUnknownRevision and IsAmbiguousArgument.
Lets simply fix the test by flipping the check: I don't see
any dependency on this behavior in non-test code.
Moreover, `git rev-parse --short HEAD` fails with another error:
```
fatal: Needed a single revision
```
Lets handle it as IsUnknownRevision
Signed-off-by: Jegor Gorbunov <jegor.gorbunov@point-devel.com>1 parent 8419911 commit 28c48d8
2 files changed
+9
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
| 108 | + | |
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| 188 | + | |
188 | 189 | | |
189 | | - | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
190 | 193 | | |
191 | 194 | | |
192 | 195 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
77 | | - | |
78 | | - | |
| 77 | + | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
0 commit comments