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

Re: Porcelain/Plumbing

From
Jakub Narebski <jnareb@gmail.com>
Date
Jun 11, 2008, 20:42 UTC
Message-ID
<m3zlprr9fu.fsf@localhost.localdomain>
In-Reply-To
<bd6139dc0806111250y53cfbdbdj9f00e38bf6e1c912@mail.gmail.com>
"Sverre Rabbelier" <alturin@gmail.com> writes:
Show 5 quoted lines
> During my efforts gsoc efforts, I stumbled across (or actually, was
> pointed at) 'git branch --contains' to list only branches that contain
> a specific commit. The problem here is that 'git branch' is listed as
> porcelain, and that there seems to be no plumbing equivalent of this
> feature. 

I think there isn't. If there were, its place probably would be either in git-show-ref, or in git-for-each-ref, or in both.

> I have the same problem with 'git log -S', although 'git log'
> is pretty sturdy output wise (if you specify the output with
> '--pretty=format:' that is), the idea is the same.

log = rev-list + diff-tree. The -S (aka. pickaxe) option is option to git-diff-tree (and friends). You would have to pipe output of rev-list to diff-tree (via --stdin) to use -S in porcelain.

Show 6 quoted lines
> My question is, is it intentional that there is no plumbing equivalent
> forsome functionality, and, in such cases, is it 'ok' to use the
> porcelain from a script? (I think it is not.) I've been recommended to
> stick with the plumbing as much as possible from my code, but with the
> above two cases I've been unsure on what to do.
> What is the advised course of action here?

I think using git-log from scripts is O.K., for example qgit uses git-log to parse revisions, and IIRC it was recommended on git mailing list to do that (IIRC it was around adding --encoding=<encoding> and logOutputEncoding to git).

git-branch I think is too much a porcelain...
-- 
Jakub Narebski
Poland
ShadeHawk on #git
Previous: Sverre Rabbelier
Message 2 of 2 in “Porcelain/Plumbing”
  1. Sverre RabbelierJun 11, 2008
  2. Jakub NarebskiJun 11, 2008

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.