git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
e63eec2894638ad515c35f597047421a6748894e blob 3715 bytes (raw)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
 
#!/bin/sh

test_description='tests for git clone -c key=value'
. ./test-lib.sh

test_expect_success 'clone -c sets config in cloned repo' '
	rm -rf child &&
	git clone -c core.foo=bar . child &&
	echo bar >expect &&
	git --git-dir=child/.git config core.foo >actual &&
	test_cmp expect actual
'

test_expect_success 'clone -c can set multi-keys' '
	rm -rf child &&
	git clone -c core.foo=bar -c core.foo=baz . child &&
	{ echo bar; echo baz; } >expect &&
	git --git-dir=child/.git config --get-all core.foo >actual &&
	test_cmp expect actual
'

test_expect_success 'clone -c can set multi-keys, including some empty' '
	rm -rf child &&
	git clone -c credential.helper= -c credential.helper=hi . child &&
	printf "%s\n" "" hi >expect &&
	git --git-dir=child/.git config --get-all credential.helper >actual &&
	test_cmp expect actual
'

test_expect_success 'clone -c without a value is boolean true' '
	rm -rf child &&
	git clone -c core.foo . child &&
	echo true >expect &&
	git --git-dir=child/.git config --bool core.foo >actual &&
	test_cmp expect actual
'

test_expect_success 'clone -c config is available during clone' '
	echo content >file &&
	git add file &&
	git commit -m one &&
	rm -rf child &&
	git clone -c core.autocrlf . child &&
	printf "content\\r\\n" >expect &&
	test_cmp expect child/file
'

test_expect_success 'clone -c remote.origin.fetch=<refspec> works' '
	rm -rf child &&
	git update-ref refs/grab/it refs/heads/master &&
	git update-ref refs/leave/out refs/heads/master &&
	git clone -c "remote.origin.fetch=+refs/grab/*:refs/grab/*" . child &&
	git -C child for-each-ref --format="%(refname)" >actual &&

	cat >expect <<-\EOF &&
	refs/grab/it
	refs/heads/master
	refs/remotes/origin/HEAD
	refs/remotes/origin/master
	EOF
	test_cmp expect actual
'

test_expect_success 'git -c remote.origin.fetch=<refspec> clone works' '
	rm -rf child &&
	git -c "remote.origin.fetch=+refs/grab/*:refs/grab/*" clone . child &&
	git -C child for-each-ref --format="%(refname)" >actual &&

	cat >expect <<-\EOF &&
	refs/grab/it
	refs/heads/master
	refs/remotes/origin/HEAD
	refs/remotes/origin/master
	EOF
	test_cmp expect actual
'

test_expect_success 'clone -c remote.<remote>.fetch=<refspec> --origin=<name>' '
	rm -rf child &&
	git clone --origin=upstream \
		  -c "remote.upstream.fetch=+refs/grab/*:refs/grab/*" \
		  -c "remote.origin.fetch=+refs/leave/*:refs/leave/*" \
		  . child &&
	git -C child for-each-ref --format="%(refname)" >actual &&

	cat >expect <<-\EOF &&
	refs/grab/it
	refs/heads/master
	refs/remotes/upstream/HEAD
	refs/remotes/upstream/master
	EOF
	test_cmp expect actual
'

test_expect_success 'clone -c remote.origin.fetch=<refspec> matches the default refspec' '
	rm -rf child &&
	git clone -c "remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*" \
		. child &&
	# TODO: look, the same refspec is stored in the config twice:
	git -C child config --get-all remote.origin.fetch &&
	git -C child for-each-ref --format="%(refname)" >actual &&
	cat >expect <<-\EOF &&
	refs/heads/master
	refs/remotes/origin/HEAD
	refs/remotes/origin/master
	EOF
	test_cmp expect actual
'

# Tests for the hidden file attribute on windows
is_hidden () {
	# Use the output of `attrib`, ignore the absolute path
	case "$(attrib "$1")" in *H*?:*) return 0;; esac
	return 1
}

test_expect_success MINGW 'clone -c core.hideDotFiles' '
	test_commit attributes .gitattributes "" &&
	rm -rf child &&
	git clone -c core.hideDotFiles=false . child &&
	! is_hidden child/.gitattributes &&
	rm -rf child &&
	git clone -c core.hideDotFiles=dotGitOnly . child &&
	! is_hidden child/.gitattributes &&
	rm -rf child &&
	git clone -c core.hideDotFiles=true . child &&
	is_hidden child/.gitattributes
'

test_done
debug log:

solving e63eec2894 ...
found e63eec2894 in https://public-inbox.org/git/20190529132017.GM951@szeder.dev/
found 60c1ba951b in https://80x24.org/mirrors/git.git
preparing index
index prepared:
100755 60c1ba951b7d4178708574d10986659749925059	t/t5611-clone-config.sh

applying [1/1] https://public-inbox.org/git/20190529132017.GM951@szeder.dev/
diff --git a/t/t5611-clone-config.sh b/t/t5611-clone-config.sh
index 60c1ba951b..e63eec2894 100755

Checking patch t/t5611-clone-config.sh...
Applied patch t/t5611-clone-config.sh cleanly.

index at:
100755 e63eec2894638ad515c35f597047421a6748894e	t/t5611-clone-config.sh

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).