Pull and fetch don't honor `--progress` flag

2013-10-16 Thread Jacobs, Todd
When I use the `--progress` flag with the push command, I get transfer-speed 
statistics like this:

$ git push -progress origin master 21 | tee /tmp/push
Counting objects: 30, done.
Compressing objects: 100% (20/20), done.
Writing objects: 100% (30/30), 9.02 MiB | 206.00 KiB/s, done.
Total 30 (delta 0), reused 0 (delta 0)

This also works similarly with clone:

$ git clone --progress $url foo.git 21 | tee /tmp/clone
Cloning into 'foo.git'...
remote: Counting objects: 61, done.
remote: Compressing objects: 100% (43/43), done.
remote: Total 61 (delta 3), reused 0 (delta 0)
Receiving objects: 100% (61/61), 15.22 MiB | 473.00 KiB/s, done.
Resolving deltas: 100% (3/3), done.
Checking connectivity... done

However, even though pull and fetch also have the same flag documented, git 
never reports any network statistics at all. For example:

$ git pull --progress origin master 21 | tee /tmp/pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0)

This is repeatable with both Git 1.7.9 and Git 1.8.4.1 running under Cygwin. Is 
this a bug? If not, how can I make fetch and pull cough up throughput 
statistics?

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Pull and fetch don't honor `--progress` flag

2013-10-16 Thread John Keeping
On Wed, Oct 16, 2013 at 03:50:51PM -0400, Jacobs, Todd wrote:
 When I use the `--progress` flag with the push command, I get transfer-speed 
 statistics like this:
 
 $ git push -progress origin master 21 | tee /tmp/push
 Counting objects: 30, done.
 Compressing objects: 100% (20/20), done.
 Writing objects: 100% (30/30), 9.02 MiB | 206.00 KiB/s, done.
 Total 30 (delta 0), reused 0 (delta 0)
 
 This also works similarly with clone:
 
 $ git clone --progress $url foo.git 21 | tee /tmp/clone
 Cloning into 'foo.git'...
 remote: Counting objects: 61, done.
 remote: Compressing objects: 100% (43/43), done.
 remote: Total 61 (delta 3), reused 0 (delta 0)
 Receiving objects: 100% (61/61), 15.22 MiB | 473.00 KiB/s, done.
 Resolving deltas: 100% (3/3), done.
 Checking connectivity... done
 
 However, even though pull and fetch also have the same flag documented, git 
 never reports any network statistics at all. For example:
 
 $ git pull --progress origin master 21 | tee /tmp/pull
 remote: Counting objects: 5, done.
 remote: Compressing objects: 100% (3/3), done.
 remote: Total 3 (delta 1), reused 0 (delta 0)
 
 This is repeatable with both Git 1.7.9 and Git 1.8.4.1 running under Cygwin. 
 Is this a bug? If not, how can I make fetch and pull cough up throughput 
 statistics?

Does it make a difference how you invoke git fetch?  From a quick look
at the code, git fetch with no remote or refspec should display
progress data, but if you specify --all or a remote and refspec then
it won't.

The following patch (untested) will fix it if that is the case:

-- 8 --
diff --git a/builtin/fetch.c b/builtin/fetch.c
index bd7a101..487381e 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -952,6 +952,10 @@ static void add_options_to_argv(struct argv_array *argv)
argv_array_push(argv, -v);
else if (verbosity  0)
argv_array_push(argv, -q);
+   if (progress  0)
+   argv_array_push(argv, --progress);
+   else if (progress == 0)
+   argv_array_push(argv, --no-progress);
 
 }
 
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Pull and fetch don't honor `--progress` flag

2013-10-16 Thread Jacobs, Todd
 Does it make a difference how you invoke git fetch?  From a quick look at
 the code, git fetch with no remote or refspec should display progress data,
 but if you specify --all or a remote and refspec then it won't.

Thanks for your prompt response.  However, it doesn't make any
difference.  The behavior remains the same even without specifying
a refspec.  For example:

$ git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.

$ git fetch
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done. 
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html