Subject: [RFC/PATCH] t5525: test the tagopt variable and that it can be overridden

From: Daniel Johnson <[email-masked]>
Date: Fri, 13 Aug 2010 16:13:30 -0400

---
> The current behaviour seems to me a bug introduced while git-fetch was
> rewritten in C (the original found in contrib/examples reads from the
> config only when no --tags/--no-tags option is given from the command
> line).
>
> Is this something we can protect with a test script from future breakages?
This should test that behavior. I'd appreciate feedback on how to improve this
test. I'm not sure if this is the right name/number either.

 t/t5525-fetch-tagopt.sh |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)
 create mode 100755 t/t5525-fetch-tagopt.sh

diff --git a/t/t5525-fetch-tagopt.sh b/t/t5525-fetch-tagopt.sh
new file mode 100755
index 0000000..17bd407
--- /dev/null
+++ b/t/t5525-fetch-tagopt.sh
@@ -0,0 +1,44 @@
+
+#!/bin/sh
+
+test_description='tagopt variable affects "git fetch" and is overridden by commandline.'
+
+. ./test-lib.sh
+
+setup_clone () {
+	(git clone --mirror . $1 &&
+	git remote add remote_$1 $1 &&
+	cd $1 &&
+	git tag tag_$1)
+}
+
+test_expect_success setup '
+	echo >file original &&
+	git add file &&
+	git commit -a -m original &&
+	setup_clone one &&
+	git config remote.remote_one.tagopt --no-tags &&
+	setup_clone two &&
+	git config remote.remote_two.tagopt --tags
+	'
+
+test_expect_success "fetch with tagopt=--no-tags does not get tag" '
+	git fetch remote_one &&
+	! (git show-ref tag_one)
+	'
+
+test_expect_success "fetch --tags with tagopt=--no-tags gets tag" '
+	git fetch --tags remote_one &&
+	(git show-ref tag_one)
+	'
+
+test_expect_success "fetch --no-tags with tagopt=--tags does not get tag" '
+	git fetch --no-tags remote_two &&
+	! (git show-ref tag_two)
+	'
+
+test_expect_success "fetch with tagopt=--tags gets tag" '
+	git fetch remote_two &&
+	(git show-ref tag_two)
+	'
+test_done
-- 
1.7.2