# [PATCH] git pull cannot find remote refs.

3 messages from 2006-02-27 to 2006-02-28. Participants: Stefan-W. Hahn, Junio C Hamano.
Thread: https://gitlist.dev/t/3483

## Stefan-W. Hahn, 2006-02-27 21:49

Subject: [PATCH] git pull cannot find remote refs.
Message-ID: <20060227214936.GA7205@scotty.home>
URL: https://gitlist.dev/e/20060227214936.GA7205%40scotty.home

```
[PATCH] git pull cannot find remote refs.

When getting new data from an archive with 'git pull' I sometimes got the
message

fatal: unexpected EOF
Failed to find remote refs
Already up-to-date.

Tracking it down, I found a gap between how git-ls-remote prints out the tags
and git-fetch scans them with sed. Looking at the code of git-ls-remote the
there is an tab character between the sha1 and the refname, while there is a
space and a tab character in the regular expression for th sed command.

As a result the while where all is piped in cannot read the two values.

Signed-off-by: Stefan-W. Hahn <stefan.hahn@s-hahn.de>

---

I'm not sure if the solution is the best, because info sed say '\t' is not portable,
so perhaps it will be better to correct it another way?

Comments?

 git-fetch.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

92905634295ea29a59c773c634197cc029839883
diff --git a/git-fetch.sh b/git-fetch.sh
index 0346d4a..c7b38b2 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -375,7 +375,7 @@ case "$no_tags$tags" in
 		# using local tracking branch.
 		taglist=$(IFS=" " &&
 		git-ls-remote $upload_pack --tags "$remote" |
-		sed -ne 's|^\([0-9a-f]*\)[ 	]\(refs/tags/.*\)^{}$|\1 \2|p' |
+		sed -ne 's|^\([0-9a-f]*\)[\t]\(refs/tags/.*\)^{}$|\1 \2|p' |
 		while read sha1 name
 		do
 			test -f "$GIT_DIR/$name" && continue
-- 
1.2.3.gc55f


-- 
Stefan-W. Hahn                          It is easy to make things.
/ mailto:stefan.hahn@s-hahn.de /        It is hard to make things simple.			

```

## Junio C Hamano, 2006-02-28 01:13

Subject: Re: [PATCH] git pull cannot find remote refs.
Message-ID: <7vlkvwuvyl.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vlkvwuvyl.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20060227214936.GA7205@scotty.home>

```
"Stefan-W. Hahn" <stefan.hahn@s-hahn.de> writes:

> Tracking it down, I found a gap between how git-ls-remote prints out the tags
> and git-fetch scans them with sed. Looking at the code of git-ls-remote the
> there is an tab character between the sha1 and the refname, while there is a
> space and a tab character in the regular expression for th sed command.
>
> As a result the while where all is piped in cannot read the two values.

Sorry.

I do not understand the above comment, nor the following code.

>  		git-ls-remote $upload_pack --tags "$remote" |
> -		sed -ne 's|^\([0-9a-f]*\)[ 	]\(refs/tags/.*\)^{}$|\1 \2|p' |
> +		sed -ne 's|^\([0-9a-f]*\)[\t]\(refs/tags/.*\)^{}$|\1 \2|p' |

ls-remote shows "SHA1\tPATH".  The original says "hexadecimal
followed by [either a single space or a single tab] followed by
a refpath", while yours says "hexadecimal followed by a single tab
followed by a refpath".  I do not see how that would make any
difference.  Puzzled...

I've seen two servers DNS round-robin and one of them fail to
respond.  The first "fetch" goes to the good one and the second
ls-remote goes to the bad one, then you would see "Oops, we
cannot peek tags".  But this patch does not have anything to do
with that problem..

```

## Stefan-W. Hahn, 2006-02-28 16:19

Subject: Re: [PATCH] git pull cannot find remote refs.
Message-ID: <20060228161928.GA4829@scotty.home>
URL: https://gitlist.dev/e/20060228161928.GA4829%40scotty.home
In-Reply-To: <7vlkvwuvyl.fsf@assigned-by-dhcp.cox.net>

```
Also sprach Junio C Hamano am Mon, 27 Feb 2006 at 17:13:22 -0800:

> ls-remote shows "SHA1\tPATH".  The original says "hexadecimal
> followed by [either a single space or a single tab] followed by

> difference.  Puzzled...

Grmph... You are right.

> I've seen two servers DNS round-robin and one of them fail to
> respond.  The first "fetch" goes to the good one and the second
> ls-remote goes to the bad one, then you would see "Oops, we
> cannot peek tags".  But this patch does not have anything to do
> with that problem..

Trapped. I haven't seen this, but perhaps it was the problem. 
I'll watching for the next occurence.


Sorry for the noise.

Stefan

-- 
Stefan-W. Hahn                          It is easy to make things.
/ mailto:stefan.hahn@s-hahn.de /        It is hard to make things simple.			

```
