summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorDaniel Johnson <computerdruid@gmail.com>2010-08-11 22:57:20 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-08-15 02:24:23 (GMT)
commited36854651303dd18156786fc096de611f43912c (patch)
tree328e1ac5bedad23c32390e7e45199702040ff090 /t
parent64fdc08dac6694d1e754580e7acb82dfa4988bb9 (diff)
downloadgit-ed36854651303dd18156786fc096de611f43912c.zip
git-ed36854651303dd18156786fc096de611f43912c.tar.gz
git-ed36854651303dd18156786fc096de611f43912c.tar.bz2
fetch: allow command line --tags to override config
Originally, if remote.<name>.tagopt was set, the --tags and option would have no effect when given to git fetch. So if tagopt="--no-tags" git fetch --tags would not actually fetch tags. This patch changes this behavior to only follow what is written in the config if there is no option passed by the command line. Signed-off-by: Daniel Johnson <ComputerDruid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-xt/t5525-fetch-tagopt.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/t/t5525-fetch-tagopt.sh b/t/t5525-fetch-tagopt.sh
new file mode 100755
index 0000000..4fbf7a1
--- /dev/null
+++ b/t/t5525-fetch-tagopt.sh
@@ -0,0 +1,41 @@
+#!/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 '
+ test_commit test &&
+ 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 &&
+ test_must_fail 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 &&
+ test_must_fail 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