From: Jeff King Date: Tue, 12 Oct 2010 19:32:04 GMT Subject: Re: Push not writing to standard error Message-ID: <20101012193204.GA8620@sigill.intra.peff.net> In-Reply-To: <20101012192117.GD16237@burratino> On Tue, Oct 12, 2010 at 02:21:17PM -0500, Jonathan Nieder wrote: > Chase Brammer wrote: > > > saving the standard error from bash > > to a file during a push doesn't seem to be working.  I am only able to > > get standard output, which doesn't give the progress of the push > > (counting, delta, compressing, and writing status). > [...] > > git push origin master --progress > ~/push_error_output.txt 2>&1 > [...] > > Idea's on work arounds or upcoming patches to fix this? > > None from me. But some hints for a patch: > > - As the man page says, > > --progress > > Progress status is reported on the standard error stream > by default when it is attached to a terminal, unless -q is > specified. This flag forces progress status even if the > standard error stream is not directed to a terminal. > > It looks like this facility is not working. > > - Terminals are distinguished from nonterminals with isatty() > > - The "Counting objects..." output comes from pack-objects. > Running with GIT_TRACE=1 reveals that the --progress option is > not being passed to pack-objects as it should be. > > - Is this a regression? If so, narrowing the regression window > with a few rounds of "git bisect" could be helpful. It looks like transport_set_verbosity gets called correctly, and then sets the "progress" flag for the transport. But for the push side, I don't see any transports actually looking at that flag. I think there needs to be code in git_transport_push to handle the progress flag, and it just isn't there. -Peff