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

Re: [PATCH 3/3] help: respect aliases

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 26, 2008, 20:14 UTC
Message-ID
<7vve4b4gqu.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<alpine.LSU.1.00.0802261222570.17164@racer.site>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 23 quoted lines
> Hi,
>
> On Sun, 24 Feb 2008, Jay Soffian wrote:
>
>> This too would be less ugly as a built-in:
>> 
>>     alias      = "! sh -c 'if test -z \"$1\"; then git config --list \
>>                   | expand \
>>                   | sed \"/^alias\\./!d; s/^alias\\.//; s/=/ /; s/  */ /g\" \
>>                   | sort | while read n v; do \
>>                   printf \"%-16s\" \"$n\"; echo \"$v\" | gnused \
>>                   \"s/\\(.\\{68\\}\\) /\\1\\n\t\t/g\" | expand; \
>>                   done; else git config \"alias.$1\"; fi' -"
>
> Wow.  This would look less ugly as an alias like this, too:
>
> alias = "!sh -c 'case $# in \
>         0) git config --get-regexp \"^alias\\.\" | sed \"s/^alias\\.//\";; \
>         *) git config \"alias.$0\" ;; \
>         esac'"
>
> which incidentally fixes a bug in your alias: you ignore $0 which is the 
> first parameter when using the sh -c '' idiom.
I notice that he is feeding an exra '-' for that.
> Of course, you can change the sed call to your liking...

Sure. The combination of expand, sed, and gnused hurts my eyes ;-)

One good lesson to take home is that by ending your lines with '|', you can tell the shell that you are not done with the pipeline you are forming yet. This allows you to lose all these ugly backslashes, like this:

	xyzzy |
        frotz |
        nitfol
instead of
	xyzzy \
        | frotz \
        | nitfol
Previous: Johannes SchindelinNext: Jay Soffian
Message 11 of 12 in “help: use parseopt”
  1. 1/3 help: use parseoptJeff King, Feb 24, 2008
  2. Christian CouderFeb 25, 2008
  3. Jeff KingFeb 25, 2008
  4. Junio C HamanoFeb 25, 2008
  5. 2/3 make alias lookup a public, procedural functionJeff King, Feb 24, 2008
  6. 3/3 help: respect aliasesJeff King, Feb 24, 2008
  7. Jay SoffianFeb 25, 2008
  8. Johannes SchindelinFeb 26, 2008
  9. Jay SoffianFeb 26, 2008
  10. Johannes SchindelinFeb 26, 2008
  11. Junio C HamanoFeb 26, 2008
  12. Jay SoffianFeb 26, 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.