remote-testgit: move it into the support directory for t5801
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 12 Apr 2019 12:00:31 +0000 (05:00 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 15 Apr 2019 05:30:04 +0000 (14:30 +0900)
The `git-remote-testgit` script is really only used in
`t5801-remote-helpers.sh`. It does not even contain any `@@<MAGIC>@@`
placeholders that would need to be interpolated via `make
git-remote-testgit`.

Let's just move it to a new home, decluttering the top-level directory
and clarifying that this is just a test helper, not an official Git
command that we would want to ever support.

Suggested by Ævar Arnfjörð Bjarmason.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
.gitignore
Makefile
git-remote-testgit.sh [deleted file]
t/t5801-remote-helpers.sh
t/t5801/git-remote-testgit [new file with mode: 0755]
index 7374587f9df901cba0a6990ad48fac17f8a5be57..de8fc2f5b1a6434526c5af831e994aff33320971 100644 (file)
 /git-remote-ftps
 /git-remote-fd
 /git-remote-ext
-/git-remote-testgit
 /git-remote-testpy
 /git-remote-testsvn
 /git-repack
index 8654c130f87c054719a6f3f0c25c1ac9e0acd7eb..26f8ed22288bbf2cdfd9c3888415b2ca1296e59b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -633,7 +633,6 @@ SCRIPT_SH += git-merge-resolve.sh
 SCRIPT_SH += git-mergetool.sh
 SCRIPT_SH += git-quiltimport.sh
 SCRIPT_SH += git-legacy-rebase.sh
-SCRIPT_SH += git-remote-testgit.sh
 SCRIPT_SH += git-request-pull.sh
 SCRIPT_SH += git-stash.sh
 SCRIPT_SH += git-submodule.sh
@@ -657,8 +656,6 @@ SCRIPT_PERL += git-svn.perl
 
 SCRIPT_PYTHON += git-p4.py
 
-NO_INSTALL += git-remote-testgit
-
 # Generated files for scripts
 SCRIPT_SH_GEN = $(patsubst %.sh,%,$(SCRIPT_SH))
 SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL))
diff --git a/git-remote-testgit.sh b/git-remote-testgit.sh
deleted file mode 100755 (executable)
index 752c763..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2012 Felipe Contreras
-
-# The first argument can be a url when the fetch/push command was a url
-# instead of a configured remote. In this case, use a generic alias.
-if test "$1" = "testgit::$2"; then
-       alias=_
-else
-       alias=$1
-fi
-url=$2
-
-dir="$GIT_DIR/testgit/$alias"
-prefix="refs/testgit/$alias"
-
-default_refspec="refs/heads/*:${prefix}/heads/*"
-
-refspec="${GIT_REMOTE_TESTGIT_REFSPEC-$default_refspec}"
-
-test -z "$refspec" && prefix="refs"
-
-GIT_DIR="$url/.git"
-export GIT_DIR
-
-force=
-
-mkdir -p "$dir"
-
-if test -z "$GIT_REMOTE_TESTGIT_NO_MARKS"
-then
-       gitmarks="$dir/git.marks"
-       testgitmarks="$dir/testgit.marks"
-       test -e "$gitmarks" || >"$gitmarks"
-       test -e "$testgitmarks" || >"$testgitmarks"
-fi
-
-while read line
-do
-       case $line in
-       capabilities)
-               echo 'import'
-               echo 'export'
-               test -n "$refspec" && echo "refspec $refspec"
-               if test -n "$gitmarks"
-               then
-                       echo "*import-marks $gitmarks"
-                       echo "*export-marks $gitmarks"
-               fi
-               test -n "$GIT_REMOTE_TESTGIT_SIGNED_TAGS" && echo "signed-tags"
-               test -n "$GIT_REMOTE_TESTGIT_NO_PRIVATE_UPDATE" && echo "no-private-update"
-               echo 'option'
-               echo
-               ;;
-       list)
-               git for-each-ref --format='? %(refname)' 'refs/heads/'
-               head=$(git symbolic-ref HEAD)
-               echo "@$head HEAD"
-               echo
-               ;;
-       import*)
-               # read all import lines
-               while true
-               do
-                       ref="${line#* }"
-                       refs="$refs $ref"
-                       read line
-                       test "${line%% *}" != "import" && break
-               done
-
-               if test -n "$gitmarks"
-               then
-                       echo "feature import-marks=$gitmarks"
-                       echo "feature export-marks=$gitmarks"
-               fi
-
-               if test -n "$GIT_REMOTE_TESTGIT_FAILURE"
-               then
-                       echo "feature done"
-                       exit 1
-               fi
-
-               echo "feature done"
-               git fast-export \
-                       ${testgitmarks:+"--import-marks=$testgitmarks"} \
-                       ${testgitmarks:+"--export-marks=$testgitmarks"} \
-                       $refs |
-               sed -e "s#refs/heads/#${prefix}/heads/#g"
-               echo "done"
-               ;;
-       export)
-               if test -n "$GIT_REMOTE_TESTGIT_FAILURE"
-               then
-                       # consume input so fast-export doesn't get SIGPIPE;
-                       # git would also notice that case, but we want
-                       # to make sure we are exercising the later
-                       # error checks
-                       while read line; do
-                               test "done" = "$line" && break
-                       done
-                       exit 1
-               fi
-
-               before=$(git for-each-ref --format=' %(refname) %(objectname) ')
-
-               git fast-import \
-                       ${force:+--force} \
-                       ${testgitmarks:+"--import-marks=$testgitmarks"} \
-                       ${testgitmarks:+"--export-marks=$testgitmarks"} \
-                       --quiet
-
-               # figure out which refs were updated
-               git for-each-ref --format='%(refname) %(objectname)' |
-               while read ref a
-               do
-                       case "$before" in
-                       *" $ref $a "*)
-                               continue ;;     # unchanged
-                       esac
-                       if test -z "$GIT_REMOTE_TESTGIT_PUSH_ERROR"
-                       then
-                               echo "ok $ref"
-                       else
-                               echo "error $ref $GIT_REMOTE_TESTGIT_PUSH_ERROR"
-                       fi
-               done
-
-               echo
-               ;;
-       option\ *)
-               read cmd opt val <<-EOF
-               $line
-               EOF
-               case $opt in
-               force)
-                       test $val = "true" && force="true" || force=
-                       echo "ok"
-                       ;;
-               *)
-                       echo "unsupported"
-                       ;;
-               esac
-               ;;
-       '')
-               exit
-               ;;
-       esac
-done
index aaaa722ccab016cc5847d5b6bbc5a3879a0b3fbc..d04f8007e0e34fa938bf4fccb91eff384743e616 100755 (executable)
@@ -8,6 +8,8 @@ test_description='Test remote-helper import and export commands'
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/lib-gpg.sh
 
+PATH="$TEST_DIRECTORY/t5801:$PATH"
+
 compare_refs() {
        git --git-dir="$1/.git" rev-parse --verify $2 >expect &&
        git --git-dir="$3/.git" rev-parse --verify $4 >actual &&
diff --git a/t/t5801/git-remote-testgit b/t/t5801/git-remote-testgit
new file mode 100755 (executable)
index 0000000..752c763
--- /dev/null
@@ -0,0 +1,147 @@
+#!/bin/sh
+# Copyright (c) 2012 Felipe Contreras
+
+# The first argument can be a url when the fetch/push command was a url
+# instead of a configured remote. In this case, use a generic alias.
+if test "$1" = "testgit::$2"; then
+       alias=_
+else
+       alias=$1
+fi
+url=$2
+
+dir="$GIT_DIR/testgit/$alias"
+prefix="refs/testgit/$alias"
+
+default_refspec="refs/heads/*:${prefix}/heads/*"
+
+refspec="${GIT_REMOTE_TESTGIT_REFSPEC-$default_refspec}"
+
+test -z "$refspec" && prefix="refs"
+
+GIT_DIR="$url/.git"
+export GIT_DIR
+
+force=
+
+mkdir -p "$dir"
+
+if test -z "$GIT_REMOTE_TESTGIT_NO_MARKS"
+then
+       gitmarks="$dir/git.marks"
+       testgitmarks="$dir/testgit.marks"
+       test -e "$gitmarks" || >"$gitmarks"
+       test -e "$testgitmarks" || >"$testgitmarks"
+fi
+
+while read line
+do
+       case $line in
+       capabilities)
+               echo 'import'
+               echo 'export'
+               test -n "$refspec" && echo "refspec $refspec"
+               if test -n "$gitmarks"
+               then
+                       echo "*import-marks $gitmarks"
+                       echo "*export-marks $gitmarks"
+               fi
+               test -n "$GIT_REMOTE_TESTGIT_SIGNED_TAGS" && echo "signed-tags"
+               test -n "$GIT_REMOTE_TESTGIT_NO_PRIVATE_UPDATE" && echo "no-private-update"
+               echo 'option'
+               echo
+               ;;
+       list)
+               git for-each-ref --format='? %(refname)' 'refs/heads/'
+               head=$(git symbolic-ref HEAD)
+               echo "@$head HEAD"
+               echo
+               ;;
+       import*)
+               # read all import lines
+               while true
+               do
+                       ref="${line#* }"
+                       refs="$refs $ref"
+                       read line
+                       test "${line%% *}" != "import" && break
+               done
+
+               if test -n "$gitmarks"
+               then
+                       echo "feature import-marks=$gitmarks"
+                       echo "feature export-marks=$gitmarks"
+               fi
+
+               if test -n "$GIT_REMOTE_TESTGIT_FAILURE"
+               then
+                       echo "feature done"
+                       exit 1
+               fi
+
+               echo "feature done"
+               git fast-export \
+                       ${testgitmarks:+"--import-marks=$testgitmarks"} \
+                       ${testgitmarks:+"--export-marks=$testgitmarks"} \
+                       $refs |
+               sed -e "s#refs/heads/#${prefix}/heads/#g"
+               echo "done"
+               ;;
+       export)
+               if test -n "$GIT_REMOTE_TESTGIT_FAILURE"
+               then
+                       # consume input so fast-export doesn't get SIGPIPE;
+                       # git would also notice that case, but we want
+                       # to make sure we are exercising the later
+                       # error checks
+                       while read line; do
+                               test "done" = "$line" && break
+                       done
+                       exit 1
+               fi
+
+               before=$(git for-each-ref --format=' %(refname) %(objectname) ')
+
+               git fast-import \
+                       ${force:+--force} \
+                       ${testgitmarks:+"--import-marks=$testgitmarks"} \
+                       ${testgitmarks:+"--export-marks=$testgitmarks"} \
+                       --quiet
+
+               # figure out which refs were updated
+               git for-each-ref --format='%(refname) %(objectname)' |
+               while read ref a
+               do
+                       case "$before" in
+                       *" $ref $a "*)
+                               continue ;;     # unchanged
+                       esac
+                       if test -z "$GIT_REMOTE_TESTGIT_PUSH_ERROR"
+                       then
+                               echo "ok $ref"
+                       else
+                               echo "error $ref $GIT_REMOTE_TESTGIT_PUSH_ERROR"
+                       fi
+               done
+
+               echo
+               ;;
+       option\ *)
+               read cmd opt val <<-EOF
+               $line
+               EOF
+               case $opt in
+               force)
+                       test $val = "true" && force="true" || force=
+                       echo "ok"
+                       ;;
+               *)
+                       echo "unsupported"
+                       ;;
+               esac
+               ;;
+       '')
+               exit
+               ;;
+       esac
+done