Skip to contentSkip to conversation

what are plumbing and porcelain

DISCUSSION bill lam 2 participants 5 messages Jun 15, 2016

lore
Share & tools
lore

bill lam

author
#0 lore raw

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

Signature · 6 lines
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
唐詩318 李白  清平調三首之二
    一枝紅豔露凝香  雲雨巫山枉斷腸  借問漢宮誰得似  可憐飛燕倚新妝
#1 lore raw

On Tuesday 20 January 2009, bill lam <[email protected]> wrote about 'what are plumbing and porcelain':

Quoted 2 lines

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.

Signature · 4 lines
Boyd Stephen Smith Jr.                     ,= ,-_-. =. 
[email protected]                     ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy           `-'(. .)`-' 
http://iguanasuicide.net/                      \_/     
author
#2 lore raw
Quoted 2 lines · Boyd Stephen Smith Jr.

"plumbing" are the commands that do low-level operations. Generally, end-users won't have to use them much, if at all, but they

I can see now gitk should probably be porcelain. But how about commands such as git add or git rebase used with either the -i switch on or off?

Signature · 6 lines
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
唐詩299 李商隱  寄令狐郎中
    嵩雲秦樹久離居  雙鯉迢迢一紙筆  休問梁園舊賓客  茂陵秋雨病相如
#3 lore raw

On Wednesday 21 January 2009, bill lam <[email protected]> wrote about 'Re: what are plumbing and porcelain':

Quoted 7 lines · Boyd Stephen Smith Jr.
Quoted 2 lines

"plumbing" are the commands that do low-level operations. Generally, end-users won't have to use them much, if at all, but they

I can see now gitk should probably be porcelain. But how about commands such as git add or git rebase used with either the -i switch on or off?

If you have git installed, "man git" should contain separate lists of porcelain and plumbing. If not, the documentation is available in the git repository, under Documentation/. Porcelain: cmds-mainporcelain.txt, cmds-ancillarymanipulators.txt, cmds-ancillaryinterrogators.txt, and cmds-foreignscminterface.txt. Plumbing: cmds-plumbingmanipulators.txt, cmds-plumbinginterrogators.txt, cmds-synchingrepositories.txt, cmds-synchelpers.txt, and cmds-purehelpers.txt

Signature · 4 lines
Boyd Stephen Smith Jr.                     ,= ,-_-. =. 
[email protected]                     ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy           `-'(. .)`-' 
http://iguanasuicide.net/                      \_/     
author
#4 lore raw

Thanks for bringing my attention to that.

Signature · 6 lines
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
唐詩306 鄭畋  馬嵬坡
    玄宗回馬楊妃死  雲雨難忘日月新  終是聖明天子事  景陽宮井又何人