diff options
Diffstat (limited to 'git-checkout-script')
-rwxr-xr-x | git-checkout-script | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/git-checkout-script b/git-checkout-script index e8e777f1f2..dc1cffde0b 100755 --- a/git-checkout-script +++ b/git-checkout-script @@ -6,11 +6,14 @@ new=${new:-$old} args=($(git-rev-parse --no-revs "$@")) i=0 -force=0 +force= +update= while [ $i -lt ${#args} ]; do case "${args[$i]}" in "-f") force=1;; + "-u") + update=1;; "") ;; *) @@ -20,11 +23,11 @@ while [ $i -lt ${#args} ]; do i=$(($i+1)) done -if $force +if [ "$force" ] then git-read-tree --reset $new && - git-checkout-cache -q -f -u -a && - echo $new > "$GIT_DIR/HEAD" + git-checkout-cache -q -f -u -a else - git-read-tree -m -u $old $new && echo $new > "$GIT_DIR/HEAD" -fi + git-read-tree -m -u $old $new +fi && [ "$update" ] && echo $new > "$GIT_DIR/HEAD" + |