Skip to content

Commit

Permalink
git-mv: invalidate the removed path properly in cache-tree
Browse files Browse the repository at this point in the history
The command updated the cache without invalidating the cache
tree entries while removing an existing entry.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Oct 2, 2006
1 parent 82ca505 commit 4fddf57
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
1 change: 1 addition & 0 deletions builtin-mv.c
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@ int cmd_mv(int argc, const char **argv, const char *prefix)
for (i = 0; i < deleted.nr; i++) {
const char *path = deleted.items[i].path;
remove_file_from_cache(path);
cache_tree_invalidate_path(active_cache_tree, path);
}

if (active_cache_changed) {
Expand Down
19 changes: 19 additions & 0 deletions t/t7001-mv.sh
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,23 @@ test_expect_success \
'move into "."' \
'git-mv path1/path2/ .'

test_expect_success "Michael Cassar's test case" '
rm -fr .git papers partA &&
git init-db &&
mkdir -p papers/unsorted papers/all-papers partA &&
echo a > papers/unsorted/Thesis.pdf &&
echo b > partA/outline.txt &&
echo c > papers/unsorted/_another &&
git add papers partA &&
T1=`git write-tree` &&
git mv papers/unsorted/Thesis.pdf papers/all-papers/moo-blah.pdf &&
T=`git write-tree` &&
git ls-tree -r $T | grep partA/outline.txt || {
git ls-tree -r $T
(exit 1)
}
'

test_done

0 comments on commit 4fddf57

Please sign in to comment.