From 1fe32cb9d0807e6da468dc7bf96d427b2f38c1c4 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 15 Feb 2008 23:57:26 -0800 Subject: filter-branch: handle filenames that need quoting The command used a very old fashioned construct to extract filenames out of diff-index and ended up corrupting the output. We can simply use --name-only and pipe into --stdin mode of update-index. It's been like that for the past 2 years or so since a94d994 (update-index: work with c-quoted name). Signed-off-by: Junio C Hamano --- t/t7003-filter-branch.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 't/t7003-filter-branch.sh') diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index 5f60b22d87..868babc4b2 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -165,4 +165,18 @@ test_expect_success '"map" works in commit filter' ' git rev-parse --verify master ' +test_expect_success 'Name needing quotes' ' + + git checkout -b rerere A && + mkdir foo && + name="れれれ" && + >foo/$name && + git add foo && + git commit -m "Adding a file" && + git filter-branch --tree-filter "rm -fr foo" && + ! git ls-files --error-unmatch "foo/$name" && + test $(git rev-parse --verify rerere) != $(git rev-parse --verify A) + +' + test_done -- cgit v1.2.3