rev_info.early_output started out as an unsigned int in cdcefbc97 (Add "--early-output" log flag for interactive GUI use, 2007-11-03), but later it was turned into a single bit in a bit field in cc243c3ce (show: --ignore-missing, 2011-05-18) without explanation, though the code using it still expects it to be a regular integer type and uses it as a counter. Consequently, any even number given via '--early-output=<N>', or indeed a plain '--early-output' defaulting to 100 effectively disabled the feature.
Turn rev_info.early_output back into its origin unsigned int data type, making '--early-output' work again. Signed-off-by: SZEDER Gábor <szeder....@gmail.com> --- > But the "users still expect" bit was a bit subtle to me, as I thought > you meant users of Git. But you mean that the feature itself is not a > boolean, but rather an integer count of how much early output to show. Yeah, I wrote "callsites" first, but then realized it's not a function... Here is the same patch with an updated commit message now saying "code using it" and "used as a counter" to make it clearer. It also mentions that an argumentless '--early-output' turns off the feature, too. I won't resend the rest of the series. revision.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/revision.h b/revision.h index a91dd3d5d..f96e7f7f4 100644 --- a/revision.h +++ b/revision.h @@ -74,8 +74,9 @@ struct rev_info { /* topo-sort */ enum rev_sort_order sort_order; - unsigned int early_output:1, - ignore_missing:1, + unsigned int early_output; + + unsigned int ignore_missing:1, ignore_missing_links:1; /* Traversal flags */ -- 2.13.0.420.g54001f015