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

Re: Barebone Porcelain. Where to stop?

From
FSFrank Sorenson <frank@tuxrocks.com>
Date
Jul 18, 2005, 20:57 UTC
Message-ID
<42DC17C5.80000@tuxrocks.com>
In-Reply-To
<7v8y04q6sj.fsf@assigned-by-dhcp.cox.net>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Junio C Hamano wrote:
Show 25 quoted lines
> Catalin Marinas <catalin.marinas@gmail.com> writes:
> 
>>I don't see git going towards stgit at all. Indeed, it gets closer to
>>cogito but I still like cogito over plain git since it's easier to use
>>(my goal, though, is to add pull/clone commands to stgit so that one
>>doesn't need to rely on directly using other tools).
> 
> All good to hear.  I do not speak for Linus, but I think core
> should not be competing with Porcelain.  To me, there are four
> purposes for the barebone Porcelain layer:
> 
>  (1) provide the end user a minimum UI to do essential things.
> 
>  (2) codify the BCP/convention to use the core by higher level
>      SCMs to help them stay compatible with each other where
>      possible (e.g. "what .git/HEAD means, when it gets updated,
>      and to what" was discussed recently).
> 
>  (3) serve as an example for people interested in learning the
>      core GIT (i.e. they may be starting their own Porcelain).
> 
>  (4) implement operations that are heavy on logic/convention but
>      does not have much UI need so that higher level SCMs can
>      implement their own UI by just being a thin wrapper around
>      them (e.g. clone/fetch and push).

These all sound good. Along the lines of #4, one potential purpose I've been curious about is the possibility of pulling these core operations out into a library that Porcelain could use directly. This way, Porcelain, including the minimum git UI (your #1), could directly link in and call the needed functions, and rather than stringing sequences of git-whatever commands together in a shell script.

This would allow Porcelain to take advantage of the core git more directly, and would improve the speed of Porcelain. The minimum UI (#1) would be a much simpler example (#3), since it would only be the front-end, rather than the front-end/back-end combination it is now.

Is this something we want to consider, or am I out in left field? :)
Frank
- --
Frank Sorenson - KD7TZK
Systems Manager, Computer Science Department
Brigham Young University
frank@tuxrocks.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFC3BfFaI0dwg4A47wRApyQAKD3yXqYfcm7TgJ5GnIZsw5ZcB+P/wCgpM75 cjPHXi8jd0VthQjKNFITFxU= =Jxx/ -----END PGP SIGNATURE-----

Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 6 in “Barebone Porcelain. Where to stop?”
  1. Junio C HamanoJul 16, 2005
  2. Bryan LarsenJul 18, 2005
  3. Catalin MarinasJul 18, 2005
  4. Junio C HamanoJul 18, 2005
  5. Frank SorensonJul 18, 2005
  6. Junio C HamanoJul 19, 2005

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.