diff options
| author | Yann E. MORIN <yann.morin.1998@free.fr> | 2018-05-01 10:44:11 +0200 |
|---|---|---|
| committer | Thomas Petazzoni <thomas.petazzoni@bootlin.com> | 2018-05-01 21:22:28 +0200 |
| commit | 428a0649fff33b43243d64e9e1556bc00811e9b6 (patch) | |
| tree | 653e983f0e69a9a21cb179f871f1a0d765583077 /support/download | |
| parent | 577315687ff0b2209ced50974563fb72548bb85e (diff) | |
| download | buildroot-428a0649fff33b43243d64e9e1556bc00811e9b6.tar.gz buildroot-428a0649fff33b43243d64e9e1556bc00811e9b6.zip | |
download/git: quickly exit when the cset does not exist
Check that the given cset is indeed something we can checkout. If not,
then exit early.
This will be useful when a later commit will trap any failing git
command to try to recover the repository by doing a clone from scratch:
when the cset is not a commit, it does not mean the repository is broken
or what, and re-cloning from scratch would not help, so no need to trash
a good cache.
Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Tested-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Diffstat (limited to 'support/download')
| -rwxr-xr-x | support/download/git | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/support/download/git b/support/download/git index 60d6c24f1e..bd37a0a8d9 100755 --- a/support/download/git +++ b/support/download/git @@ -114,6 +114,13 @@ if ! _git fetch origin "'${cset}:${cset}'" >/dev/null 2>&1; then printf "Could not fetch special ref '%s'; assuming it is not special.\n" "${cset}" fi +# Check that the changeset does exist. If it does not, no reason to go +# on, we can fast-track to the exit path. +if ! _git rev-parse --quiet --verify "'${cset}^{commit}'" >/dev/null 2>&1; then + printf "Commit '%s' does not exist in this repository\n." "${cset}" + exit 1 +fi + # Checkout the required changeset, so that we can update the required # submodules. _git checkout -q "'${cset}'" |

