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

Re: [PATCH] Introduce git version --list-features for porcelain use

From
Shawn O. Pearce <spearce@spearce.org>
Date
Jun 1, 2007, 04:14 UTC
Message-ID
<20070601041458.GC7044@spearce.org>
In-Reply-To
<7vvee8z5q9.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <junkio@cox.net> wrote:
Show 18 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes:
> 
> > Why cat?  Tcl is so horribly broken that to get data for both stdout
> > and stderr through a pipe I have to do something sick like:
> >
> > 	git fetch 2>&1 | cat
> >
> > because in Tcl its actually:
> >
> > 	set rdr [open "| git fetch |& cat" r]
> >
> > The |& means 2>&1| in normal shell.  But that means I have to have
> > a process after it to receive the data.  Normally that's cat.
> > But MinGW doesn't have cat.  (Nor do they have dog, but neither
> > does Linux...).  So I need a way to redirect output.
> 
> Wait a minute.  Who interprets |& in the above?  Isn't it a
> shell?

My understanding was it is Tcl itself. My $SHELL doesn't understand it:

  $ echo hi |& cat
  -bash: syntax error near unexpected token `&'
> That's why I asked if you are writing for shell-less
> environment.  If you are _not_, can't you do something like this
> instead?

Ideally with MinGW we wouldn't need a UNIX shell to get things working in git-gui. But we have to have one for git-merge for example, as git-gui doesn't have a builtin Grand Unified Merge Driver. Also for git-fetch, which is one of the prime uses of this cat redirect thing. ;-)

> 	set rdr [open "| sh -c 'git fetch 2>&1'" r]

Yeah, I'm already doing that sh -c trick for a different reason in another context. I may have to do just that here too.

-- 
Shawn.
Previous: Junio C HamanoNext: Johannes Sixt
Message 11 of 12 in “Introduce git-supported-features for porcelain use”
  1. Introduce git-supported-features for porcelain useShawn O. Pearce, May 30, 2007
  2. Alex RiesenMay 30, 2007
  3. Johannes SchindelinMay 30, 2007
  4. Introduce git version --list-features for porcelain useShawn O. Pearce, May 31, 2007
  5. Johannes SchindelinMay 31, 2007
  6. Alex RiesenMay 31, 2007
  7. Shawn O. PearceMay 31, 2007
  8. Junio C HamanoMay 31, 2007
  9. Shawn O. PearceJun 1, 2007
  10. Junio C HamanoJun 1, 2007
  11. Shawn O. PearceJun 1, 2007
  12. Johannes SixtJun 1, 2007

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.