Re: [PATCH v2] merge-file: correctly open files when in a subdir
From: Aleksander Boruch-Gruszecki <hidden>
Date: 2016-06-15 23:03:47
quoted
const char *filename = argv[0]; - FILE *f = to_stdout ? stdout : fopen(filename, "wb"); + const char *fpath = prefix_filename(prefix, prefixlen, argv[0]); + FILE *f = to_stdout ? stdout : fopen(fpath, "wb"); if (!f) ret = error("Could not open %s for writing", filename);diff --git a/t/t6023-merge-file.sh b/t/t6023-merge-file.sh index 3758961..fdd104c 100755 --- a/t/t6023-merge-file.sh +++ b/t/t6023-merge-file.sh@@ -72,6 +72,12 @@ test_expect_success 'works in subdirectory' ' ( cd dir && git merge-file a.txt o.txt b.txt ) ' +mkdir -p dir/deep +cp new1.txt orig.txt new2.txt dir/deep +test_expect_success 'accounts for subdirectory when writing' ' + (cd dir && git merge-file deep/new1.txt deep/orig.txt deep/new2.txt) +'Interesting. Makes us wonder why the one before this new one you added did not catch the issue, doesn't it?
The test before the one added by me does work because merge-file tries to open "a.txt" for writing in repo root directory, which will create a file if it does not exist. If you add a directory before the file, trying to open it will fail. I will additionally check of the file's content to make the test more clear, however it does actually fail with git 2.3.0. The issue with line-wrapping and tab changing to space is my own stupidity, I used an older config with my vim and it mangled the file. It also probably is what caused the patch to not apply properly.