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

Re: what are plumbing and porcelain

From
Boyd Stephen Smith Jr. <bss@iguanasuicide.net>
Date
Jan 21, 2009, 05:50 UTC
Message-ID
<200901202350.15011.bss@iguanasuicide.net>
In-Reply-To
<20090121052741.GC6970@b2j>

On Tuesday 20 January 2009, bill lam <cbill.lam@gmail.com> wrote about 'what are plumbing and porcelain':

>Sorry for this idiot question, but I really don't know what they are
>and why it is necessary to distinguish between them.

"plumbing" are the commands that do low-level operations. Generally, end-users won't have to use them much, if at all, but they are "fundamental" operations, upon which git is built. It's a term also used in other project some, with a similar meaning.

"porcelain" is a cute name for the end-user operations. They "cover" the plumbing to make it look and act "pretty". While some may be less useful to some users, they all are high-level operations that depend on the plumbing.

It's important to distinguish between them because we don't want the plumbing to get needlessly complex. They should be single-purpose commands and their options should be utilitarian in nature. Also, porcelain is meant to be used interactively, not in scripts, so the output or behavior might change a bit--but that is still kept to a minimum.

-- 
Boyd Stephen Smith Jr.                     ,= ,-_-. =. 
bss@iguanasuicide.net                     ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy           `-'(. .)`-' 
http://iguanasuicide.net/                      \_/     
Previous: bill lamNext: bill lam
Message 2 of 5 in “what are plumbing and porcelain”
  1. bill lamJan 21, 2009
  2. Boyd Stephen Smith Jr.Jan 21, 2009
  3. bill lamJan 21, 2009
  4. Boyd Stephen Smith Jr.Jan 21, 2009
  5. bill lamJan 21, 2009

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.