From: Junio C Hamano Date: Wed, 17 Aug 2005 22:19:57 +0000 (-0700) Subject: Make rebase script saner. X-Git-Tag: v0.99.5~15^2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/99a92f928fd02a87d841a8bb19511e7ce526819d Make rebase script saner. It did not check to see if the working tree was clean and matched the commit we were starting out as, resulting in the initial rebased commit including whatever dirty state the working tree has had. Signed-off-by: Junio C Hamano --- diff --git a/git-rebase-script b/git-rebase-script index 026225ab2c..7b1d4900bd 100755 --- a/git-rebase-script +++ b/git-rebase-script @@ -17,16 +17,19 @@ case "$#,$1" in shift ;; esac +git-update-cache --refresh || exit + case "$#" in -1) upstream=`git-rev-parse --verify "$1"` && - ours=`git-rev-parse --verify HEAD` || exit - ;; -2) upstream=`git-rev-parse --verify "$1"` && - ours=`git-rev-parse --verify "$2"` || exit - ;; -*) echo >&2 "$usage"; exit 1 ;; +1) ours_symbolic=HEAD ;; +2) ours_symbolic="$2" ;; +*) die "$usage" ;; esac +upstream=`git-rev-parse --verify "$1"` && +ours=`git-rev-parse --verify "$ours_symbolic^` || exit +test "$(git-diff-cache --cached "$ours")" = "" || +die "Your working tree does not match $ours_symbolic." + git-read-tree -m -u $ours $upstream && git-rev-parse --verify "$upstream^0" >"$GIT_DIR/HEAD" || exit