download_and_compile.sh: fix the order of operations in _gitUpdate()
_gitUpdate() used to call 'git pull' then 'git checkout'. If the latter command really did a branch switch, this could leave the local branch behind its remote counterpart (that was hopefully fetched by the 'git pull'). From now on, we do: git fetch origin git checkout --force "$branch" git pull --rebase (the --force option was already there before in the form of -f). This way, we can be sure that the local branch we check out is up-to-date when the function returns. Also replace short options by long ones for better readability of the code, and use Bash's [[ ... ]] conditional construct instead of [ ... ] for more efficiency---I think. Note: 'git stash save' is documented as deprecated in favor of 'git stash push', however the latter appears to have been introduced in 2017, therefore I believe it is too early to use it in download_and_compile.sh.
This commit is contained in:
parent
21c13c0886
commit
3099633675
@ -260,19 +260,22 @@ function _gitUpdate(){
|
|||||||
if [ "$DOWNLOAD" != "y" ]; then
|
if [ "$DOWNLOAD" != "y" ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
branch="$1"
|
|
||||||
|
local branch="$1"
|
||||||
set +e
|
set +e
|
||||||
git diff --exit-code 2>&1 > /dev/null
|
git diff --exit-code 2>&1 > /dev/null
|
||||||
if [ $? != 1 ]; then
|
if [[ $? != 1 ]]; then
|
||||||
set -e
|
set -e
|
||||||
git pull -r
|
git fetch origin
|
||||||
git checkout -f "$branch"
|
git checkout --force "$branch"
|
||||||
|
git pull --rebase
|
||||||
else
|
else
|
||||||
set -e
|
set -e
|
||||||
git stash save -u -q
|
git fetch origin
|
||||||
git pull -r
|
git stash save --include-untracked --quiet
|
||||||
git checkout -f "$branch"
|
git checkout --force "$branch"
|
||||||
git stash pop -q
|
git pull --rebase
|
||||||
|
git stash pop --quiet
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user