summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2019-06-03 21:13:27 -0500
committerJunio C Hamano <gitster@pobox.com>2019-06-04 11:28:58 -0700
commit8144f09ccde4df49cdb807a7ce9e6cb14a09bd2e (patch)
tree17977b0726006a0b4564138eaa3cedf390823993
parentt5801 (remote-helpers): cleanup refspec stuff (diff)
downloadgit-8144f09ccde4df49cdb807a7ce9e6cb14a09bd2e.tar.xz
git-8144f09ccde4df49cdb807a7ce9e6cb14a09bd2e.zip
t5801 (remote-helpers): add test to fetch tags
This used to work, but commit e198b3a740 broke it. e198b3a740 (fetch: replace string-list used as a look-up table with a hashmap) Probably all remote helpers that use the import method are affected, but we didn't catch the issue. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-remote-testgit.sh17
-rwxr-xr-xt/t5801-remote-helpers.sh10
2 files changed, 22 insertions, 5 deletions
diff --git a/git-remote-testgit.sh b/git-remote-testgit.sh
index f2b551dfafc..6b9f0b5dc79 100755
--- a/git-remote-testgit.sh
+++ b/git-remote-testgit.sh
@@ -12,9 +12,14 @@ url=$2
dir="$GIT_DIR/testgit/$alias"
-refspec="refs/heads/*:refs/testgit/$alias/heads/*"
+h_refspec="refs/heads/*:refs/testgit/$alias/heads/*"
+t_refspec="refs/tags/*:refs/testgit/$alias/tags/*"
-test -n "$GIT_REMOTE_TESTGIT_NOREFSPEC" && refspec=""
+if test -n "$GIT_REMOTE_TESTGIT_NOREFSPEC"
+then
+ h_refspec=""
+ t_refspec=""
+fi
GIT_DIR="$url/.git"
export GIT_DIR
@@ -37,7 +42,8 @@ do
capabilities)
echo 'import'
echo 'export'
- test -n "$refspec" && echo "refspec $refspec"
+ test -n "$h_refspec" && echo "refspec $h_refspec"
+ test -n "$t_refspec" && echo "refspec $t_refspec"
if test -n "$gitmarks"
then
echo "*import-marks $gitmarks"
@@ -49,7 +55,7 @@ do
echo
;;
list)
- git for-each-ref --format='? %(refname)' 'refs/heads/'
+ git for-each-ref --format='? %(refname)' 'refs/heads/' 'refs/tags/'
head=$(git symbolic-ref HEAD)
echo "@$head HEAD"
echo
@@ -78,7 +84,8 @@ do
echo "feature done"
git fast-export \
- ${refspec:+"--refspec=$refspec"} \
+ ${h_refspec:+"--refspec=$h_refspec"} \
+ ${t_refspec:+"--refspec=$t_refspec"} \
${testgitmarks:+"--import-marks=$testgitmarks"} \
${testgitmarks:+"--export-marks=$testgitmarks"} \
$refs
diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh
index 9d1a514d18b..4138354e006 100755
--- a/t/t5801-remote-helpers.sh
+++ b/t/t5801-remote-helpers.sh
@@ -301,4 +301,14 @@ test_expect_success 'fetch url' '
compare_refs server HEAD local FETCH_HEAD
'
+test_expect_failure 'fetch tag' '
+ (cd server &&
+ git tag v1.0
+ ) &&
+ (cd local &&
+ git fetch
+ ) &&
+ compare_refs local v1.0 server v1.0
+'
+
test_done