[PATCH] git-am: Keep index in case of abort with dirty index
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- Feb 26, 2009, 09:52 UTC
- Message-ID
- <1235641973-18307-1-git-send-email-git@drmicha.warpmail.net>
- In-Reply-To
- <7v8wnu2x67.fsf@gitster.siamese.dyndns.org>
git am --abort resets the index unconditionally. But in case a previous git am exited due to a dirty index it is preferable to keep that index. Make it so.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> --- Something like this?
git-am.sh | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/git-am.sh b/git-am.sh index 8bcb206..7013fea 100755 --- a/git-am.sh +++ b/git-am.sh @@ -230,8 +230,10 @@ then ;; ,t) git rerere clear - git read-tree --reset -u HEAD ORIG_HEAD - git reset ORIG_HEAD + test -f "$dotest/dirtyindex" || { + git read-tree --reset -u HEAD ORIG_HEAD + git reset ORIG_HEAD + } rm -fr "$dotest" exit ;; esac @@ -287,7 +289,11 @@ fi case "$resolved" in '') files=$(git diff-index --cached --name-only HEAD --) || exit - test "$files" && die "Dirty index: cannot apply patches (dirty: $files)" + if test "$files" + then + : >"$dotest/dirtyindex" + die "Dirty index: cannot apply patches (dirty: $files)" + fi esac if test "$(cat "$dotest/utf8")" = t
-- 1.6.2.rc1.30.gd43c