Re: jn/apply-filename-with-sp (Re: What's cooking in git.git (Aug 2010, #02; Wed, 11))
From: Johannes Sixt <hidden>
Date: 2016-06-15 22:49:19
Subsystem:
the rest · Maintainer:
Linus Torvalds
Am 13.08.2010 00:40, schrieb Jonathan Nieder:
Johannes Sixt wrote:quoted
Am 8/12/2010 1:35, schrieb Junio C Hamano:quoted
quoted
* jn/apply-filename-with-sp (2010-07-23) 4 commits - apply: Handle traditional patches with space in filename - t4135 (apply): use expand instead of pr for portability - tests: Test how well "git apply" copes with weird filenames - apply: Split quoted filename handling into new function Looked Ok. Will merge to 'next'.The test cases that work with files with tabs must have a prerequisite; see t3600-rm.sh.Would this work? -- 8< -- Subject: t4135 (apply): filenames with tabs are not usable on NTFS Move the code setting up the FUNNYNAMES prerequisite from v1.3.0-rc1~67 (workaround fat/ntfs deficiences for t3600-rm.sh, 2006-03-03) to test-lib and use it. Reported-by: Johannes Sixt<redacted> Signed-off-by: Jonathan Nieder<redacted>
No, it needs this squashed in (warning, whitespace damaged), except that the prerequisite EXPAND is nowhere defined - it is only a hint for you(?) that we need something else there because we don't have expand on Windows. I don't know why the test with quotes fails. It must be a bug in MSYS bash, because the file system does not have any problems with quotes in file names.
diff --git a/t/t4135-apply-weird-filenames.sh b/t/t4135-apply-weird-filenames.sh index 5c7165e..6730a30 100755
--- a/t/t4135-apply-weird-filenames.sh
+++ b/t/t4135-apply-weird-filenames.sh@@ -88,10 +88,10 @@ try_filename() { try_filename 'plain' 'postimage.txt' try_filename 'with spaces' 'post image.txt' try_filename 'with tab' 'post image.txt' FUNNYNAMES -try_filename 'with backslash' 'post\image.txt' -try_filename 'with quote' '"postimage".txt' '' success failure success +try_filename 'with backslash' 'post\image.txt' BSLASHPSPEC +try_filename 'with quote' '"postimage".txt' FUNNYNAMES success
failure success -test_expect_success FULLDIFF 'whitespace-damaged traditional patch' ' +test_expect_success EXPAND,FULLDIFF 'whitespace-damaged traditional patch' ' reset_preimage && reset_subdirs && echo postimage >b/postimage.txt &&
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 1e5640b..d50e787 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh@@ -963,8 +963,8 @@ test -z "$NO_GETTEXT" && test_set_prereq GETTEXT f1='newline embedded' if - >"$f1" 2>/dev/null && - >'tab embedded' 2>/dev/null + { >"$f1"; } 2>/dev/null && + { >'tab embedded'; } 2>/dev/null then test_set_prereq FUNNYNAMES fi
Without the braces in this check the error message is still printed. I didn't test whether just writing 2>/dev/null first would suppress it as well. BTW, I would prefer to keep the test in t3600 and t4135, that it doesn't happen for every other test script unnecessarily. -- Hannes