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

Re: [PATCH 0/10] re-based and expanded tree-walker cleanup patches

From
Junio C Hamano <junkio@cox.net>
Date
May 31, 2006, 22:53 UTC
Message-ID
<7vpshtyffk.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.64.0605292112530.5623@g5.osdl.org>
Linus Torvalds <torvalds@osdl.org> writes:
Show 10 quoted lines
>  (a) git-rev-list --pretty=oneline "$upstream"..ORIG_HEAD > rev-list
>
>  (b) edit the rev-list, moving the single lines around, deleting them, etc
>
>  (c) cat rev-list |
>      git-format-patch -k --stdout --stdin --full_index |
>      git-am
>
> because the "--pretty=oneline" format is actually very nice as a way to 
> re-order things and select single commits to be deleted or whatever..

I am thinking about doing "format-patch --stdin" while I am futzing with it for other reasons, and one issue is where to "tac" the revision list.

We could internally reverse topo-sort what we read from --stdin inside format-patch, but that would defeat the reordering that is done in the step (b) above, so that is not a useful thing to do.

If we wanted to make rev-list piped straight to format-patch equilvalent to giving the arguments you would have given rev-list directly to format-patch, then format-patch should read --stdin and reverse the list before emitting them out.

However, that would mean in the step (b) above the user needs to be conscious that the list being edited is in the reverse order, so if the list of commits needs to be reordered (and that is one of the reasons the user is doing this step) what comes earlier in the edited list will be output later in the result.

Tentatively my feeling is that we should make it known that the list format-patch takes from --stdin is supposed to be _not_ reversed, and do nothing in format-patch. In other words, the list fed is a moral equivalent to quilt "series" file.

What this means is:
	git-format-patch $revargs
is not equivalent to
	git-rev-list $revargs | git-format-patch --stdin
but is equivalent to
	git-rev-list $revargs | tac | git-format-patch --stdin
Thoughts from the list?
Previous: Junio C HamanoNext: Shawn Pearce
Message 18 of 24 in “re-based and expanded tree-walker cleanup patches”
  1. 0/10 re-based and expanded tree-walker cleanup patchesLinus Torvalds, May 29, 2006
  2. 1/10 Make "struct tree" contain the pointer to the tree bufferLinus Torvalds, May 29, 2006
  3. 2/10 Make "tree_entry" have a SHA1 instead of a union of object pointersLinus Torvalds, May 29, 2006
  4. 3/10 Switch "read_tree_recursive()" over to tree-walk functionalityLinus Torvalds, May 29, 2006
  5. 4/10 builtin-read-tree.c: avoid tree_entry_list in prime_cache_tree_rec()Linus Torvalds, May 29, 2006
  6. 5/10 Remove "tree->entries" tree-entry list from tree parserLinus Torvalds, May 29, 2006
  7. 6/10 fsck-objects: avoid unnecessary tree_entry_list usageLinus Torvalds, May 29, 2006
  8. Linus TorvaldsMay 29, 2006
  9. 7/10 Remove unused "zeropad" entry from tree_list_entryLinus Torvalds, May 29, 2006
  10. 8/10 Convert "mark_tree_uninteresting()" to raw tree walkerLinus Torvalds, May 29, 2006
  11. 9/10 Convert fetch.c: process_tree() to raw tree walkerLinus Torvalds, May 29, 2006
  12. 10/10 Remove last vestiges of generic tree_entry_listLinus Torvalds, May 29, 2006
  13. Junio C HamanoMay 29, 2006
  14. Linus TorvaldsMay 30, 2006
  15. Junio C HamanoMay 30, 2006
  16. Linus TorvaldsMay 30, 2006
  17. Junio C HamanoMay 30, 2006
  18. Junio C HamanoMay 31, 2006
  19. Shawn PearceJun 1, 2006
  20. A series file for git?Eric W. Biederman, Jun 23, 2006
  21. Junio C HamanoJun 23, 2006
  22. Junio C HamanoJun 24, 2006
  23. Eric W. BiedermanJun 24, 2006
  24. Shawn PearceJun 26, 2006

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.