X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-reset.sh;h=fee6d98d9cba708828c36a2d2a29dbec8662c36b;hb=3358004a006714477c2c44577507081cb5124fa4;hp=2379db082f956e68a360cfbd667761490ecad5dd;hpb=6f38e0372266b5d674972e7039f8bd4156589558;p=git.git diff --git a/git-reset.sh b/git-reset.sh index 2379db082..fee6d98d9 100755 --- a/git-reset.sh +++ b/git-reset.sh @@ -5,6 +5,8 @@ USAGE='[--mixed | --soft | --hard] [] [ [--] ...]' SUBDIRECTORY_OK=Yes . git-sh-setup +set_reflog_action "reset $*" +require_work_tree update= reset_type=--mixed unset rev @@ -41,19 +43,17 @@ case "$1" in --) shift ;; esac # affecting the working tree nor HEAD. if test $# != 0 then - test "$reset_type" == "--mixed" || + test "$reset_type" = "--mixed" || die "Cannot do partial $reset_type reset." - git ls-tree -r --full-name $rev -- "$@" | - git update-index --add --index-info || exit + + git-diff-index --cached $rev -- "$@" | + sed -e 's/^:\([0-7][0-7]*\) [0-7][0-7]* \([0-9a-f][0-9a-f]*\) [0-9a-f][0-9a-f]* [A-Z] \(.*\)$/\1 \2 \3/' | + git update-index --add --remove --index-info || exit git update-index --refresh exit fi -TOP=$(git-rev-parse --show-cdup) -if test ! -z "$TOP" -then - cd "$TOP" -fi +cd_to_toplevel if test "$reset_type" = "--hard" then @@ -81,13 +81,13 @@ then else rm -f "$GIT_DIR/ORIG_HEAD" fi -git-update-ref -m "reset $reset_type $*" HEAD "$rev" +git-update-ref -m "$GIT_REFLOG_ACTION" HEAD "$rev" update_ref_status=$? case "$reset_type" in --hard ) test $update_ref_status = 0 && { - echo -n "HEAD is now at " + printf "HEAD is now at " GIT_PAGER= git log --max-count=1 --pretty=oneline \ --abbrev-commit HEAD }