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

Re: cmd_cherry in builtin/log.c?

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Dec 7, 2010, 17:39 UTC
Message-ID
<20101207173923.GA21483@burratino>
In-Reply-To
<AANLkTikXmc-3BBkxy-D8GNLAMXUOPghp78GpStZ-_wBW@mail.gmail.com>
Hi,
Thiago Farina wrote:
> I was looking into builtin/log.c to see how it does --reverse and I
> saw that cmd_cherry is there.
> 
> I'm wondering, why is it there?
Good question.  So let's check.
 $ git log --oneline -Scmd_cherry builtin/log.c
 81b50f3 Move 'builtin-*' into a 'builtin/' subdirectory
That wasn't too helpful.  Okay, okay.
 $ git log --oneline -Scmd_cherry -- builtin-log.c
 81b50f3 Move 'builtin-*' into a 'builtin/' subdirectory
 e827633 Built-in cherry

Running "git show e827633" reveals that the core of the original script is

	for c in $inup
	do
		git-diff-tree -p $c
	done | git-patch-id |
	while read id name
	do
		echo $name >>$patch/$id
	done
while the core of the builtin version is
	get_patch_ids(&revs, &patch_id_opts, prefix);

The latter function is static, introduced by v1.4.1~12^2~5 (format-patch: introduce "--ignore-if-in-upstream", 2006-06-25).

So the answer is that "git cherry" is considered a variant on "git log" (like format-patch, show, and whatchanged) and that it uses "git log" internals.

Hope that helps, Jonathan

Previous: Thiago FarinaNext: René Scharfe
Message 2 of 7 in “cmd_cherry in builtin/log.c?”
  1. Thiago FarinaDec 7, 2010
  2. Jonathan NiederDec 7, 2010
  3. René ScharfeDec 7, 2010
  4. Junio C HamanoDec 7, 2010
  5. René ScharfeDec 9, 2010
  6. Thiago FarinaDec 8, 2010
  7. Jonathan NiederDec 8, 2010

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.