diff --git a/git-checkout.sh b/git-checkout.sh
index 564117f0064aba32e190a49106eaecfdb422b31e..580a9e8a233f0a94c84792eba7c3dc653fccf3a0 100755 (executable)
--- a/git-checkout.sh
+++ b/git-checkout.sh
set x "$arg" "$@"
shift
fi
+ case "$1" in
+ --)
+ shift ;;
+ esac
break
;;
esac
if [ "$force" ]
then
- git-read-tree --reset $new &&
- git-checkout-index -q -f -u -a
+ git-read-tree --reset -u $new
else
git-update-index --refresh >/dev/null
merge_error=$(git-read-tree -m -u $old $new 2>&1) || (
# Match the index to the working tree, and do a three-way.
git diff-files --name-only | git update-index --remove --stdin &&
work=`git write-tree` &&
- git read-tree --reset $new &&
- git checkout-index -f -u -q -a &&
+ git read-tree --reset -u $new &&
git read-tree -m -u --aggressive $old $new $work || exit
if result=`git write-tree 2>/dev/null`