Re: [PATCHv3 3/7] revision.h: introduce blob/tree walking in order of the commits
- From
- Jonathan Tan <jonathantanmy@google.com>
- Date
- Nov 14, 2017, 19:52 UTC
- Message-ID
- <20171114115245.d150b8f741b6f809951cbec1@google.com>
- In-Reply-To
- <20171102194148.2124-4-sbeller@google.com>
On Thu, 2 Nov 2017 12:41:44 -0700 Stefan Beller <sbeller@google.com> wrote:
Show 9 quoted lines
> @@ -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.
Show 39 quoted lines
> +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)?