Re: Making git push output quieter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 5 Aug 2009, Shawn O. Pearce wrote:

> Albert Astals Cid <aacid@xxxxxxx> wrote:
> > A Dimecres, 5 d'agost de 2009, Pau Garcia i Quiles va escriure:
> > > On Tue, Aug 4, 2009 at 11:27 PM, Albert Astals Cid<aacid@xxxxxxx> wrote:
> > > > Hi, at KDE we are starting to try to use git and one of the things that's
> > > > bothering me is that git push is too verbose for our scripts.
> ...
> > > Have you tried redirecting only stdout to /dev/null, and keeping
> > > stderr to yourself ?
> > 
> > Everything goes to stderr.
> 
> Sadly our use of isatty to determine if progress/verbosity should
> be used is inconsistent.  pack-objects.c, which is what you are
> talking about above, is using stderr to determine if progress should
> be enabled, but other code like transport.c, which is used on the
> client side, is using stdout.  Hence the suggestion above to redirect
> stdout to /dev/null to try and shutoff the spew.
> 
>   $ git grep isatty
>   builtin-commit.c:		if (isatty(0))
>   builtin-config.c:			stdout_is_tty = isatty(1);
>   builtin-pack-objects.c:	progress = isatty(2);
>   builtin-revert.c:	if (isatty(0))
>   builtin-shortlog.c:	if (!nongit && !rev.pending.nr && isatty(0))
>   builtin-unpack-objects.c:	quiet = !isatty(2);
>   color.c:		stdout_is_tty = isatty(1);
>   compat/winansi.c:	if (!isatty(fileno(stream)))
>   compat/winansi.c:	if (!isatty(fileno(stream)))
>   pack-redundant.c:	if (!isatty(0)) {
>   pager.c:	if (!isatty(1))
>   pager.c:	if (isatty(2))
>   transport.c:	args.no_progress = args.quiet || (!transport->progress && !isatty(1));
>   wt-status.c:	 * will have checked isatty on stdout).
> 
> I'm thinking this might be a reasonable patch to apply, Junio/Nico?
> 
> --8<--
> pack-objects: Display progress only if stdout is tty
> 
> Client transports underneath git fetch display progress output only
> if stdout is a tty, allowing redirection of stdout to /dev/null (or
> a pipe) to silence progress but still report actual errors on stderr.
> 
> Doing the same in pack-objects means push, bundle creation and
> repack can use the same trick to silence noisy progress progress,
> but still obtain real errors.
> 
> Signed-off-by: Shawn O. Pearce <spearce@xxxxxxxxxxx>
> ---
>  builtin-pack-objects.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
> index 961b639..0b9234a 100644
> --- a/builtin-pack-objects.c
> +++ b/builtin-pack-objects.c
> @@ -2110,7 +2110,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
>  	if (!pack_compression_seen && core_compression_seen)
>  		pack_compression_level = core_compression_level;
>  
> -	progress = isatty(2);
> +	progress = isatty(1);

Doesn't this break progress reporting on a push since stdout is never a 
tty in that case?  Same issue on a fetch although in that case the 
progress level is provided explicitly by the caller.



>  	for (i = 1; i < argc; i++) {
>  		const char *arg = argv[i];
>  
> -- 
> 1.6.4.70.g9c084
> 
> 
> -- 
> Shawn.
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]