Using --max-count with --reverse currently outputs the last N commits in the final output rather than the first N commits. We want to truncate the reversed list after the first few commits, rather than truncating the initial list and reversing that. Signed-off-by: Michael Spang <spang@xxxxxxxxxx> --- revision.c | 20 +++++++++++++++++--- 1 files changed, 17 insertions(+), 3 deletions(-) diff --git a/revision.c b/revision.c index f54d43f..62135e0 100644 --- a/revision.c +++ b/revision.c @@ -1993,7 +1993,8 @@ static struct commit *get_revision_internal(struct rev_info *revs) c = NULL; break; default: - revs->max_count--; + if (!revs->reverse) + revs->max_count--; } if (c) @@ -2055,8 +2056,21 @@ struct commit *get_revision(struct rev_info *revs) revs->reverse_output_stage = 1; } - if (revs->reverse_output_stage) - return pop_commit(&revs->commits); + if (revs->reverse_output_stage) { + c = pop_commit(&revs->commits); + + switch (revs->max_count) { + case -1: + break; + case 0: + c = NULL; + break; + default: + revs->max_count--; + } + + return c; + } c = get_revision_internal(revs); if (c && revs->graph) -- 1.6.6 -- 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