David Turner <dturner@xxxxxxxxxxxxxxxx> writes: > @@ -16,8 +16,34 @@ cmp_cache_tree () { > # We don't bother with actually checking the SHA1: > # test-dump-cache-tree already verifies that all existing data is > # correct. Is this statement now stale and needs to be removed? > -test_shallow_cache_tree () { > - printf "SHA (%d entries, 0 subtrees)\n" $(git ls-files|wc -l) >expect && > +generate_expected_cache_tree_rec () { > + dir="$1${1:+/}" && > + parent="$2" && > + # ls-files might have foo/bar, foo/bar/baz, and foo/bar/quux > + # We want to count only foo because it's the only direct child > + subtrees=$(git ls-files|grep /|cut -d / -f 1|uniq) && > + subtree_count=$(echo "$subtrees"|awk '$1 {++c} END {print c}') && > + entries=$(git ls-files|wc -l) && > + printf "SHA $dir (%d entries, %d subtrees)\n" "$entries" "$subtree_count" && > + for subtree in $subtrees > + do > + cd "$subtree" > + generate_expected_cache_tree_rec "$dir$subtree" "$dir" || return 1 > + cd .. > + done && > + dir=$parent > +} > + > +generate_expected_cache_tree () { > + cwd=$(pwd) > + generate_expected_cache_tree_rec > + ret="$?" > + cd "$cwd" > + return $ret > +} As we always have had trouble between $PWD and $(pwd) on other platforms, I'd prefer something simpler, like: expected_cache_tree () { ( # subshell to let it wander around freely generate_expected_cache_tree_rec ) } Other than these two, the new tests were good from a cursory look. The change to builtin/commit.c looked good, too. Thanks. -- 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