diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-06-03 00:43:22 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-06-03 00:49:34 -0700 |
commit | a9b2d42486ee0b461220bf3895114926d9ddf9be (patch) | |
tree | 2095415de94a148adfbc4ef960b8ac85e02660f8 /t/t8003-blame.sh | |
parent | 8dc3a47c3edcee923225000e93f8052c50e5a004 (diff) | |
download | git-a9b2d42486ee0b461220bf3895114926d9ddf9be.tar.gz |
blame: correctly handle a path that used to be a directory
When trying to see if the same path exists in the parent, we ran
"diff-tree" with pathspec set to the path we are interested in with the
parent, and expect either to have exactly one resulting filepair (either
"changed from the parent", "created when there was none") or nothing (when
there is no change from the parent).
If the path used to be a directory, however, we will also see unbounded
number of entries that talk about the files that used to exist underneath
the directory in question. Correctly pick only the entry that describes
the path we are interested in in such a case (namely, the creation of the
path as a regular file).
Noticed by Ben Willard.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t8003-blame.sh')
-rwxr-xr-x | t/t8003-blame.sh | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/t/t8003-blame.sh b/t/t8003-blame.sh index 966bb0a61a..13c25f1d52 100755 --- a/t/t8003-blame.sh +++ b/t/t8003-blame.sh @@ -129,4 +129,19 @@ test_expect_success 'blame wholesale copy and more' ' ' +test_expect_success 'blame path that used to be a directory' ' + mkdir path && + echo A A A A A >path/file && + echo B B B B B >path/elif && + git add path && + test_tick && + git commit -m "path was a directory" && + rm -fr path && + echo A A A A A >path && + git add path && + test_tick && + git commit -m "path is a regular file" && + git blame HEAD^.. -- path +' + test_done |