summaryrefslogtreecommitdiff
path: root/t/t7102-reset.sh
diff options
context:
space:
mode:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>2007-11-03 13:12:17 +0000
committerJunio C Hamano <gitster@pobox.com>2007-11-03 21:44:57 -0700
commit2e7a9785c27f00a8f7a06edc1d4c9b2f3fa2eeb9 (patch)
tree02ca6682d75541b5d5d4273c3f8399f96f6e2e03 /t/t7102-reset.sh
parent19391c371cec06da6cca45dbe3c212bd479cc48c (diff)
downloadgit-2e7a9785c27f00a8f7a06edc1d4c9b2f3fa2eeb9.tar.gz
git-reset: do not be confused if there is nothing to reset
The purpose of the function update_index_from_diff() (which is the callback function we give do_diff_cache()) is to update those index entries which differ from the given commit. Since do_diff_cache() plays games with the in-memory index, this function discarded the cache and reread it. Then, back in the function read_from_tree() we wrote the index. Of course, this broke down when there were no changes and update_index_from_diff() was not called, and therefore the mangled index was not discarded. The solution is to move the index writing into the function update_index_from_diff(). Noticed by Björn Steinbrink. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7102-reset.sh')
-rwxr-xr-xt/t7102-reset.sh7
1 files changed, 7 insertions, 0 deletions
diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh
index f64b1cbf75..cea9afb764 100755
--- a/t/t7102-reset.sh
+++ b/t/t7102-reset.sh
@@ -402,4 +402,11 @@ test_expect_success 'test resetting the index at give paths' '
'
+test_expect_success 'resetting an unmodified path is a no-op' '
+ git reset --hard &&
+ git reset -- file1 &&
+ git diff-files --exit-code &&
+ git diff-index --cached --exit-code HEAD
+'
+
test_done