Skip to content

Commit

Permalink
Implement an interoperability test for fetch-pack/upload-pack
Browse files Browse the repository at this point in the history
The next patches will extend the pack protocol. This test assures that this
extension is compatible to earlier versions of git-fetch-pack/git-upload-pack.

All you need to do to take advantage of this test, is to install older
known-to-be-working binaries in the path as "old-git-fetch-pack" and
"old-git-upload-pack".

Note that the warning when testing with old-git-fetch-pack is to be
expected (it just says that the old version was not taking advantage
of all the information which the server sent).

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Johannes Schindelin authored and Junio C Hamano committed Oct 29, 2005
1 parent 6b17c67 commit eebda31
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions t/t5501-old-fetch-and-upload.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/sh
#
# Copyright (c) 2005 Johannes Schindelin
#

# Test that the current fetch-pack/upload-pack plays nicely with
# an old counterpart

cd $(dirname $0) || exit 1

tmp=$(mktemp tmp-XXXX)

retval=0

if [ -z "$1" ]; then
list="fetch upload"
else
list="$@"
fi

for i in $list; do
case "$i" in
fetch) pgm="old-git-fetch-pack"; replace="$pgm";;
upload) pgm="old-git-upload-pack"; replace="git-fetch-pack --exec=$pgm";;
both) pgm="old-git-upload-pack"; replace="old-git-fetch-pack --exec=$pgm";;
esac

if which $pgm; then
echo "Testing with $pgm"
sed -e "s/git-fetch-pack/$replace/g" \
-e "s/# old fails/warn/" < t5500-fetch-pack.sh > $tmp

sh $tmp || retval=$?
rm $tmp

test $retval != 0 && exit $retval
else
echo "Skipping test for $i, since I cannot find $pgm"
fi
done

exit 0

0 comments on commit eebda31

Please sign in to comment.