Kevin Ballard <kevin@xxxxxx> writes: > On Mar 8, 2008, at 1:41 PM, Junio C Hamano wrote: > >> Such a test is a very good incentive to the people involved in the >> failing >> part of the system to fix, and is greatly appreciated. However, >> >> * please mark "currently-failing" test with "test_expect_failure"; > > Ahh, didn't know about that. In retrospect I should have been able to > guess, though. > >> * please hint (after --- lines) if you will shortly be following up >> with >> a fix patch yourself, or if you are only reporting a bug. > > Ah. Yeah, I'm only reporting a bug. I don't know anything about how > this stuff works, and the bug doesn't bite me, it bit someone else > instead, I just thought it deserved to be documented somewhere as a > failure. > >> I can fix-up and forge your Sign-off. > > That would be great, thanks. Heh, your test is broken. You are not re-adding foo. Here is a fix. --- git-filter-branch.sh | 11 ++++++++++- t/t7003-filter-branch.sh | 5 ++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 49e13f0..8382212 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -252,7 +252,16 @@ while read commit parents; do git read-tree -i -m $commit ;; *) - git read-tree -i -m $commit:"$filter_subdir" + # The commit may not have the subdirectory at all + err=$(git read-tree -i -m $commit:"$filter_subdir" 2>&1) || { + if ! git rev-parse $commit:"$filter_subdir" 2>&1 + then + rm -f "$GIT_INDEX_FILE" + else + echo >&2 "$err" + false + fi + } esac || die "Could not initialize the index" GIT_COMMIT=$commit diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index 2ea8e3b..8f92fef 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -188,8 +188,11 @@ test_expect_failure 'Subdirectory filter on folder with non-contiguous history' git commit -m "Removing foo" && mkdir foo && touch foo/bar && + git add foo && git commit -m "Re-adding foo" && - git filter-branch --subdirectory-filter foo + + git filter-branch --subdirectory-filter foo && + test $(git rev-list master | wc -l) = 3 ' test_done -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html