path: root/transport.h
diff options
authorTay Ray Chuan <>2010-02-24 12:50:26 (GMT)
committerJunio C Hamano <>2010-02-24 16:35:44 (GMT)
commitd01b3c02e8a066054c308ee2ce521a2ea44738d3 (patch)
tree75fb151e00c082a805a3cd067b3cc89f11359e45 /transport.h
parent5bd631b3688e93ddedb33d4087deb91e2aae9e8e (diff)
transport->progress: use flag authoritatively
Set transport->progress in transport.c::transport_set_verbosity() after checking for the appropriate conditions (eg. --progress, isatty(2)), and thereafter use it without having to check again. The rules used are as follows (processing aborts when a rule is satisfied): 1. Report progress, if force_progress is 1 (ie. --progress). 2. Don't report progress, if verbosity < 0 (ie. -q/--quiet). 3. Report progress if isatty(2) is 1. This changes progress reporting behaviour such that if both --progress and --quiet are specified, progress is reported. In two areas, the logic to determine whether to *not* show progress is changed to simply use the negation of transport->progress. This changes behaviour in some ways (see previous paragraph for details). Signed-off-by: Tay Ray Chuan <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'transport.h')
1 files changed, 8 insertions, 2 deletions
diff --git a/transport.h b/transport.h
index c0743b1..de2745a 100644
--- a/transport.h
+++ b/transport.h
@@ -74,7 +74,12 @@ struct transport {
int (*disconnect)(struct transport *connection);
char *pack_lockfile;
signed verbose : 3;
- /* Force progress even if stderr is not a tty */
+ /**
+ * Transports should not set this directly, and should use this
+ * value without having to check isatty(2), -q/--quiet
+ * (transport->verbose < 0), etc. - checking has already been done
+ * in transport_set_verbosity().
+ **/
unsigned progress : 1;
* If transport is at least potentially smart, this points to
@@ -120,7 +125,8 @@ struct transport *transport_get(struct remote *, const char *);
int transport_set_option(struct transport *transport, const char *name,
const char *value);
-void transport_set_verbosity(struct transport *transport, int verbosity);
+void transport_set_verbosity(struct transport *transport, int verbosity,
+ int force_progress);
int transport_push(struct transport *connection,
int refspec_nr, const char **refspec, int flags,