Commit ba6eae3
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])?
Signed-off-by: Jegor Gorbunov <jegor.gorbunov@point-devel.com>1 parent 55e8fa3 commit ba6eae3
1 file changed
+2
-2
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 | | |
| |||
0 commit comments