Johannes Schindelin wrote:
@@ -1285,6 +1289,27 @@ struct commit *get_revision(struct rev_info *revs) { struct commit *c = NULL;+ if (revs->reverse) {+ struct commit_list *list; + + if (revs->reverse == 1) { + revs->reverse = 0; + list = NULL; + while ((c = get_revision(revs))) + commit_list_insert(c, &list); + revs->commits = list; + revs->reverse = 2; + } + + if (!revs->commits) + return NULL; + c = revs->commits->item; + list = revs->commits->next; + free(revs->commits); + revs->commits = list; + return c; + } + if (0 < revs->skip_count) { while ((c = get_revision_1(revs)) != NULL) { if (revs->skip_count-- <= 0) diff --git a/revision.h b/revision.h index d93481f..5fec184 100644 --- a/revision.h +++ b/revision.h @@ -42,7 +42,8 @@ struct rev_info { unpacked:1, /* see also ignore_packed below */ boundary:1, left_right:1, - parents:1; + parents:1, + reverse:2;/* Diff flags */unsigned int diff:1,
I like this. However, rev_info.reverse needs some documentation. Or the block in get_revision does: /* * rev_info.reverse is used to note the fact that we want to output the list * of revisions in reverse order. To accomplish this goal, reverse can have * different values: * 0 do nothing * 1 reverse the list * 2 internal use: we have already obtained and reversed the list, * now we only need to yield its items. */ cheers simon -- Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\ Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ / Party Enjoy Relax | http://dragonflybsd.org Against HTML \ Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
Attachment:
signature.asc
Description: OpenPGP digital signature