diff options
-rw-r--r-- | builtin-archive.c | 4 | ||||
-rwxr-xr-x | t/t5000-tar-tree.sh | 15 |
2 files changed, 10 insertions, 9 deletions
diff --git a/builtin-archive.c b/builtin-archive.c index b50d5ad19..6fa424d38 100644 --- a/builtin-archive.c +++ b/builtin-archive.c @@ -111,9 +111,7 @@ static void *format_subst(const struct commit *commit, const char *format, a = c + 1; } - if (result.len && len) { - strbuf_add(&result, a, len); - } + strbuf_add(&result, a, len); *sizep = result.len; diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh index 42e28ab75..dca2067b2 100755 --- a/t/t5000-tar-tree.sh +++ b/t/t5000-tar-tree.sh @@ -36,7 +36,8 @@ test_expect_success \ echo simple textfile >a/a && mkdir a/bin && cp /bin/sh a/bin && - printf "A\$Format:%s\$O" "$SUBSTFORMAT" >a/substfile && + printf "A\$Format:%s\$O" "$SUBSTFORMAT" >a/substfile1 && + printf "A not substituted O" >a/substfile2 && ln -s a a/l1 && (p=long_path_to_a_file && cd a && for depth in 1 2 3 4 5; do mkdir $p && cd $p; done && @@ -108,20 +109,22 @@ test_expect_success \ 'diff -r a c/prefix/a' test_expect_success \ - 'create an archive with a substfile' \ - 'echo substfile export-subst >a/.gitattributes && + 'create an archive with a substfiles' \ + 'echo "substfile?" export-subst >a/.gitattributes && git archive HEAD >f.tar && rm a/.gitattributes' test_expect_success \ - 'extract substfile' \ + 'extract substfiles' \ '(mkdir f && cd f && $TAR xf -) <f.tar' test_expect_success \ 'validate substfile contents' \ 'git log --max-count=1 "--pretty=format:A${SUBSTFORMAT}O" HEAD \ - >f/a/substfile.expected && - diff f/a/substfile.expected f/a/substfile' + >f/a/substfile1.expected && + diff f/a/substfile1.expected f/a/substfile1 && + diff a/substfile2 f/a/substfile2 +' test_expect_success \ 'git archive --format=zip' \ |