Merge with master to get diff fixes.
[git.git] / git-reset-script
index b6476ed..7da8d86 100755 (executable)
@@ -1,7 +1,13 @@
 #!/bin/sh
 . git-sh-setup-script || die "Not a git archive"
-rev=$(git-rev-parse --revs-only --verify --default HEAD "$@") || exit
-rev=$(git-rev-parse --revs-only --verify $rev^0) || exit
-git-read-tree --reset "$rev" && echo "$rev" > "$GIT_DIR/HEAD"
+rev=$(git-rev-parse --verify --default HEAD "$@") || exit
+rev=$(git-rev-parse --verify $rev^0) || exit
+git-read-tree --reset "$rev" && {
+       if orig=$(git-rev-parse --verify HEAD 2>/dev/null)
+       then
+               echo "$orig" >"$GIT_DIR/ORIG_HEAD"
+       fi
+       echo "$rev" > "$GIT_DIR/HEAD"
+}
 git-update-cache --refresh
 rm -f "$GIT_DIR/MERGE_HEAD"