git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH/RFC] rev-list: add --authorship-order alternative ordering

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 6, 2013, 19:40 UTC
Message-ID
<7vobbjxc21.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CAPZ477OFM6D4n_Wz-OozN=aYn5-LmNA2ggL+9GNrbGrRQh9pRQ@mail.gmail.com>
Elliott Cable <me@ell.io> writes:
Show 6 quoted lines
>> And update revs->lifo to use that same enum, without adding
>> use_author_date bit to rev_info.
>
> I'll look into replacing lifo with an enum as soon as I can sit back
> down to update this patch. For the moment, nothing more than
> committer_date_sort and author_date_sort, I suppose?
> I'll try and make this a separate patch. First commit, to replace lifo
> with an enum; second commit, to *actually implement* the code obeying
> that enum when it is set to author_date_order.

If you want to do this in a multi-step series (which may not be a bad idea), I would imagine that the enum starts as a choice between the two: traversal-order vs committer-date-order. The first patch would change nothing else.

And then you would add the third choice, author-date-order, and implement the logic to sort them using author instead of committer date in the same patch.

Show 16 quoted lines
>> Elliott: you can see the relevant changes to the topo-sort in commit
>> 96c4f4a (commit: allow associating auxiliary info on-demand,
>> 2013-04-09).
>>
>> -Peff
>
> Again, might be a little over my head. If you really think it's best
> that I look into that branch, I will try. :)
>
> Meantime, is there any other, more-immediate approach you can think
> of? I thought, for a moment, of only storing *either* the committer
> *or* the author date in the commit-struct at a given time, and
> flagging with a single bit ... but I'm not sure how widely-spread the
> nead for committer-date currently is. Maybe I can go back and
> parse-out the author date *when I need it*, instead, though that
> sounds slow …

You would parse all of them at the beginning of topo-sort function once and store these dates in the commit-info-slab (alongside with indegree). Once you are done sorting, you can discard the slab.

This could be done as a follow-up patch, but the tons of helper functions you added to compare by author date to revision.c will have to be removed in such a transition, because the whole point of using commit-info-slab is not to have commit->author_date field, which these new helpers work on.

Previous: Elliott CableNext: Junio C Hamano
Message 8 of 51 in “add --authorship-order flag to git log / rev-list”
  1. add --authorship-order flag to git log / rev-listelliottcable, Jun 4, 2013
  2. rev-list: add --authorship-order alternative orderingelliottcable, Jun 4, 2013
  3. Junio C HamanoJun 4, 2013
  4. Junio C HamanoJun 4, 2013
  5. Elliott CableJun 6, 2013
  6. Junio C HamanoJun 6, 2013
  7. Elliott CableJun 6, 2013
  8. Junio C HamanoJun 6, 2013
  9. Junio C HamanoJun 6, 2013
  10. toposort: rename "lifo" fieldJunio C Hamano, Jun 6, 2013
  11. Junio C HamanoJun 7, 2013
  12. 0/3 Preparing for --date-order=authorJunio C Hamano, Jun 7, 2013
  13. 1/3 toposort: rename "lifo" fieldJunio C Hamano, Jun 7, 2013
  14. Eric SunshineJun 7, 2013
  15. Junio C HamanoJun 7, 2013
  16. 2/3 commit-queue: LIFO or priority queue of commitsJunio C Hamano, Jun 7, 2013
  17. Eric SunshineJun 7, 2013
  18. 3/3 sort-in-topological-order: use commit-queueJunio C Hamano, Jun 7, 2013
  19. 0/4 log --author-date-orderJunio C Hamano, Jun 9, 2013
  20. 1/4 toposort: rename "lifo" fieldJunio C Hamano, Jun 9, 2013
  21. Eric SunshineJun 10, 2013
  22. Jeff KingJun 10, 2013
  23. 2/4 commit-queue: LIFO or priority queue of commitsJunio C Hamano, Jun 9, 2013
  24. Jeff KingJun 10, 2013
  25. Junio C HamanoJun 10, 2013
  26. Jeff KingJun 10, 2013
  27. Junio C HamanoJun 10, 2013
  28. Jeff KingJun 10, 2013
  29. Junio C HamanoJun 10, 2013
  30. Jeff KingJun 11, 2013
  31. Junio C HamanoJun 11, 2013
  32. 0/4 log --author-date-orderJunio C Hamano, Jun 11, 2013
  33. 1/4 toposort: rename "lifo" fieldJunio C Hamano, Jun 11, 2013
  34. 2/4 prio-queue: priority queue of pointers to structsJunio C Hamano, Jun 11, 2013
  35. 3/4 sort-in-topological-order: use prio-queueJunio C Hamano, Jun 11, 2013
  36. 4/4 log: --author-date-orderJunio C Hamano, Jun 11, 2013
  37. 3/4 sort-in-topological-order: use commit-queueJunio C Hamano, Jun 9, 2013
  38. Junio C HamanoJun 9, 2013
  39. Jeff KingJun 10, 2013
  40. Junio C HamanoJun 10, 2013
  41. Jeff KingJun 10, 2013
  42. 4/4 log: --author-date-orderJunio C Hamano, Jun 9, 2013
  43. Jeff KingJun 10, 2013
  44. Junio C HamanoJun 10, 2013
  45. Jeff KingJun 10, 2013
  46. Junio C HamanoJun 20, 2013
  47. Jeff KingJun 20, 2013
  48. Eric SunshineJun 7, 2013
  49. Jeff KingJun 4, 2013
  50. Junio C HamanoJun 4, 2013
  51. Elliott CableJun 6, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.