remote-ext: simplify git pkt-line generation
We format a pkt-line into a heap buffer, which requires
manual computation of the required size, and uses some bare
sprintf calls. We could use a strbuf instead, which would
take care of the computation for us. But it's even easier
still to use packet_write(). Besides handling the formatting
and writing for us, it fixes two things:
1. Our manual max-size check used 0xFFFF, while technically
LARGE_PACKET_MAX is slightly smaller than this.
2. Our packet will now be output as part of
GIT_TRACE_PACKET debugging.
Unfortunately packet_write() does not let us build up the
buffer progressively, so we do have to repeat ourselves a
little depending on the "vhost" setting, but the end result
is still far more readable than the original.
Since there were no tests covering this feature at all,
we'll add a few into t5802.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
0cb9d6d6b6
commit
df1ed03a6f
@ -69,4 +69,32 @@ test_expect_success 'update backfilled tag without primary transfer' '
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
|
||||
test_expect_success 'set up fake git-daemon' '
|
||||
mkdir remote &&
|
||||
git init --bare remote/one.git &&
|
||||
mkdir remote/host &&
|
||||
git init --bare remote/host/two.git &&
|
||||
write_script fake-daemon <<-\EOF &&
|
||||
git daemon --inetd \
|
||||
--informative-errors \
|
||||
--export-all \
|
||||
--base-path="$TRASH_DIRECTORY/remote" \
|
||||
--interpolated-path="$TRASH_DIRECTORY/remote/%H%D" \
|
||||
"$TRASH_DIRECTORY/remote"
|
||||
EOF
|
||||
export TRASH_DIRECTORY &&
|
||||
PATH=$TRASH_DIRECTORY:$PATH
|
||||
'
|
||||
|
||||
test_expect_success 'ext command can connect to git daemon (no vhost)' '
|
||||
rm -rf dst &&
|
||||
git clone "ext::fake-daemon %G/one.git" dst
|
||||
'
|
||||
|
||||
test_expect_success 'ext command can connect to git daemon (vhost)' '
|
||||
rm -rf dst &&
|
||||
git clone "ext::fake-daemon %G/two.git %Vhost" dst
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user