From: Jeff King <peff@peff.net>
To: Sebastian Harl <sh@tokkee.org>
Cc: Junio C Hamano <gitster@pobox.com>,
Gerrit Pape <pape@smarden.org>,
git@vger.kernel.org
Subject: Re: git-clone: Unobvious error messages when update-server-info has not been run
Date: Mon, 17 Dec 2007 07:43:59 -0500 [thread overview]
Message-ID: <20071217124359.GA20800@coredump.intra.peff.net> (raw)
In-Reply-To: <20071217105541.GG14889@albany.tokkee.org>
On Mon, Dec 17, 2007 at 11:55:41AM +0100, Sebastian Harl wrote:
> I was just trying to clone a repository using http but missed to run
> git-update-server-info on the server side. git-clone aborted with the
> following error messages:
>
> % git clone http://some/repo.git
> Initialized empty Git repository in /path/repo/.git/
> cat: /path/repo/.git/refs/remotes/origin/master: No such file or directory
> cd: 482: can't cd to /path/repo/.git/refs/remotes/origin
> fatal: : not a valid SHA1
> fatal: Not a valid object name HEAD
>
> It's kind of hard to guess where the error comes from in this case (I blamed
> Git at first). Is there some way to improve the error message in a case like
> this?
git-clone is supposed to detect this condition, but there was a bug in
the error checking code. Can you confirm that this patch fixes it?
Gerrit, I think was caused by your f28dd477 (it is a funny shell
interaction that the non-followed case branch resets $?, but it behaves
the same with bash and dash).
-- >8 --
clone: correctly report http_fetch errors
The exit status from curl was accidentally lost by the
'case' statement. We need to explicitly save it so that $?
doesn't get overwritten.
This improves the error message when fetching from an http
repository which has never had update-server-info run.
Previously, it would fail to note the fetch error and
produce multiple errors about the lack of origin branches.
It now correctly suggests running git-update-server-info.
Signed-off-by: Jeff King <peff@peff.net>
---
git-clone.sh | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/git-clone.sh b/git-clone.sh
index 68085a3..9a160ee 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -56,11 +56,12 @@ fi
http_fetch () {
# $1 = Remote, $2 = Local
- curl -nsfL $curl_extra_args "$1" >"$2" ||
- case $? in
- 126|127) exit ;;
- *) return $? ;;
- esac
+ curl -nsfL $curl_extra_args "$1" >"$2"
+ curl_exit_status=$?
+ case $curl_exit_status in
+ 126|127) exit ;;
+ *) return $curl_exit_status ;;
+ esac
}
clone_dumb_http () {
--
1.5.4.rc0.1145.gef733-dirty
next prev parent reply other threads:[~2007-12-17 12:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-17 10:55 git-clone: Unobvious error messages when update-server-info has not been run Sebastian Harl
2007-12-17 12:43 ` Jeff King [this message]
2007-12-17 15:47 ` Sebastian Harl
2007-12-18 12:23 ` Gerrit Pape
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071217124359.GA20800@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pape@smarden.org \
--cc=sh@tokkee.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).