Subject: [PATCH] Fix 'git remote show' regression on empty repository in 1.5.4

From: "Shawn O. Pearce" <[email-masked]>
Date: Tue, 4 Mar 2008 01:00:36 -0500

Back in 18f7c51c we switched git-ls-remote/git-peek-remote to
use the transport backend, rather than do everything itself.

As part of that switch we started to produce a non-zero exit
status if no refs were received from the remote peer, which
happens when the remote peer has no commits pushed to it yet.
(E.g. "git --git-dir=foo.git init; git ls-remote foo.git")

Signed-off-by: Shawn O. Pearce <[email-masked]>
---

 This patch is built against `maint`.

 It will cause a merge conflict against `master` as there is a
 change there to invoke transport_disconnect(transport) before
 displaying the refs.

 Since the disconnect patch is not in maint, but this is a current
 regression in 1.5.4.3, I'm sending you a conflicting patch.  :)

 As far as resolving this when it merges to master, the return value
 of transport_disconnect() is probably what should be checked to
 signal a non-zero exit status to the caller, not the empty ref list.

 builtin-ls-remote.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/builtin-ls-remote.c b/builtin-ls-remote.c
index 6dd31d1..720280e 100644
--- a/builtin-ls-remote.c
+++ b/builtin-ls-remote.c
@@ -94,10 +94,6 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix)
 		transport_set_option(transport, TRANS_OPT_UPLOADPACK, uploadpack);
 
 	ref = transport_get_remote_refs(transport);
-
-	if (!ref)
-		return 1;