Jeff King <peff@xxxxxxxx> writes: > On Sun, Mar 10, 2013 at 09:31:24PM -0400, Jeff King wrote: > >> I noticed that "git archive" will barf when the root tree is empty. >> [...] >> I didn't bother even looking at empty subtrees. AFAIK, git should never >> produce them (it omits the tree entirely if there is no content in it). >> You would have to fake it using hash-object manually. I suspect it would >> work just fine, as we already exercise the empty-dir code paths in the >> tests I did add. > > Curious, I went ahead and tested this. It does indeed work as expected. Interesting. > The following tests can be squashed into patch 2/2 if we want: Why not---will do. Thanks. > diff --git a/t/t5004-archive-corner-cases.sh b/t/t5004-archive-corner-cases.sh > index 395dd58..cdb7d7a 100755 > --- a/t/t5004-archive-corner-cases.sh > +++ b/t/t5004-archive-corner-cases.sh > @@ -80,4 +80,23 @@ test_expect_success 'archive complains about pathspec on empty tree' ' > test_must_fail git archive --format=tar HEAD -- foo >/dev/null > ' > > +test_expect_success 'create a commit with an empty subtree' ' > + empty_tree=$(git hash-object -t tree /dev/null) && > + root_tree=$(printf "040000 tree $empty_tree\tsub\n" | git mktree) > +' > + > +test_expect_success 'archive empty subtree with no pathspec' ' > + git archive --format=tar $root_tree >subtree-all.tar && > + make_dir extract && > + "$TAR" xf subtree-all.tar -C extract && > + check_dir extract sub > +' > + > +test_expect_success 'archive empty subtree by direct pathspec' ' > + git archive --format=tar $root_tree -- sub >subtree-path.tar && > + make_dir extract && > + "$TAR" xf subtree-path.tar -C extract && > + check_dir extract sub > +' > + > 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