On Thu,  2 Nov 2017 12:41:44 -0700
Stefan Beller <sbel...@google.com> wrote:

> @@ -239,6 +239,8 @@ void traverse_commit_list(struct rev_info *revs,
>               if (commit->tree)
>                       add_pending_tree(revs, commit->tree);
>               show_commit(commit, data);
> +             if (revs->tree_blobs_in_commit_order)
> +                     traverse_trees_and_blobs(revs, &csp, show_object, data);
>       }
>       traverse_trees_and_blobs(revs, &csp, show_object, data);
>  

I would have expected add_pending_tree() above to no longer be invoked.
If it still needs to be invoked, maybe add an explanation in the form of
a comment or commit message.

> +test_expect_success 'rev-list --in-commit-order' '
> +     for x in one two three four
> +     do
> +             echo $x >$x &&
> +             git add $x &&
> +             git commit -m "add file $x" ||
> +             return 1
> +     done &&
> +     for x in four three
> +     do
> +             git rm $x &&
> +             git commit -m "remove $x" ||
> +             return 1
> +     done &&
> +     git rev-list --in-commit-order --objects HEAD >actual.raw &&
> +     cut -c 1-40 >actual <actual.raw &&
> +
> +     git cat-file --batch-check="%(objectname)" >expect.raw <<-\EOF &&
> +             HEAD^{commit}
> +             HEAD^{tree}
> +             HEAD^{tree}:one
> +             HEAD^{tree}:two
> +             HEAD~1^{commit}
> +             HEAD~1^{tree}
> +             HEAD~1^{tree}:three
> +             HEAD~2^{commit}
> +             HEAD~2^{tree}
> +             HEAD~2^{tree}:four
> +             HEAD~3^{commit}
> +             # HEAD~3^{tree} skipped, same as HEAD~1^{tree}
> +             HEAD~4^{commit}
> +             # HEAD~4^{tree} skipped, same as HEAD^{tree}
> +             HEAD~5^{commit}
> +             HEAD~5^{tree}
> +     EOF
> +     grep -v "#" >expect <expect.raw &&
> +
> +     test_cmp expect actual
> +'

Would it be useful to have another test without --in-commit-order, so
that we can see the difference (and ensure that existing behavior is
unchanged)?

Reply via email to