shallow clone failed git pull
I was using the pu branch i tried to update the git repository and i got this error.
alk 9e950efa20dc8037c27509666cba6999da9368e8
walk 3b6a792f6ace33584897d1af08630c9acc0ce221
* refs/heads/origin: fast forward to branch 'master' of http://repo.or.cz/r/linux-2.6
old..new: 3d42488..088406b
Auto-following refs/tags/v2.6.19-rc5
shallow clone with http not supported
This repository was not cloned with -depth. I only updated the git tools using the pu branch
Quoted 10 lines · Aneesh Kumar K.V
I was using the pu branch i tried to update the git repository and i got this error.
alk
9e950efa20dc8037c27509666cba6999da9368e8
walk3b6a792f6ace33584897d1af08630c9acc0ce221
* refs/heads/origin: fast forward to branch 'master' of http://repo.or.cz/r/linux-2.6
old..new: 3d42488..088406b
Auto-following refs/tags/v2.6.19-rc5
shallow clone with http not supported
Quoted 2 lines
This repository was not cloned with -depth. I only updated the git tools using the pu branch
The attached patch gets it working. I am not sure whether the fix is the right one. I am a little bit confused regarding the $depth being incremented.
-aneesh
git-fetch.sh +4 -4
@@ -21,7 +21,7 @@ update_head_ok= exec= upload_pack= keep= -depth= +depth=0 while case "$#" in 0) break ;; esac do case "$1" in
@@ -304,7 +304,7 @@ fetch_main () { # There are transports that can fetch only one head at a time... case "$remote" in http://* | https://* | ftp://*) - test -n "$depth" && die "shallow clone with http not supported" + [ x"$depth" != x0 ] && die "shallow clone with http not supported" proto=`expr "$remote" : '\([^:]*\):'` if [ -n "$GIT_SSL_NO_VERIFY" ]; then curl_extra_args="-k"
@@ -325,7 +325,7 @@ fetch_main () { print "$u"; ' "$head") head=$(curl -nsfL $curl_extra_args $noepsv_opt "$remote/$remote_name_quoted") - depth=$( expr \( $depth + 1 \) ) + # depth=$( expr \( $depth + 1 \) ) done expr "z$head" : "z$_x40\$" >/dev/null || die "Failed to fetch $remote_name from $remote"
@@ -333,7 +333,7 @@ fetch_main () { git-http-fetch -v -a "$head" "$remote/" || exit ;; rsync://*) - test -n "$depth" && die "shallow clone with rsync not supported" + [ x"$depth" != x0 ] && die "shallow clone with http not supported" TMP_HEAD="$GIT_DIR/TMP_HEAD" rsync -L -q "$remote/$remote_name" "$TMP_HEAD" || exit 1 head=$(git-rev-parse --verify TMP_HEAD)
PATCH 1/1 FIX git pull failure with shallow clone changes
I was using the pu branch i tried to update the git repository and i got this error.
walk 9e950efa20dc8037c27509666cba6999da9368e8 walk 3b6a792f6ace33584897d1af08630c9acc0ce221
* refs/heads/origin: fast forward to branch 'master' of
http://repo.or.cz/r/linux-2.6
old..new: 3d42488..088406b
Auto-following refs/tags/v2.6.19-rc5
shallow clone with http not supported
This repository was not cloned with -depth. I only updated the git tools using the pu branch
--- git-fetch.sh | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
git-fetch.sh +3 -3
@@ -314,9 +314,9 @@ fetch_main () { noepsv_opt="--disable-epsv" fi max_depth=5 - depth=0 + cur_depth=0 head="ref: $remote_name" - while (expr "z$head" : "zref:" && expr $depth \< $max_depth) >/dev/null + while (expr "z$head" : "zref:" && expr $cur_depth \< $max_depth) >/dev/null do remote_name_quoted=$(@@PERL@@ -e ' my $u = $ARGV[0];
@@ -325,7 +325,7 @@ fetch_main () { print "$u"; ' "$head") head=$(curl -nsfL $curl_extra_args $noepsv_opt "$remote/$remote_name_quoted") - depth=$( expr \( $depth + 1 \) ) + cur_depth=$( expr \( $cur_depth + 1 \) ) done expr "z$head" : "z$_x40\$" >/dev/null || die "Failed to fetch $remote_name from $remote"
Signature · 1 line
1.4.4.rc1.g368c-dirty
Re: [PATCH] FIX git pull failure with shallow clone changes
Hi,
I overlooked that the http transport uses the variable "depth" already, which your patch fixes.
Ciao,
Dscho