git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
blob b4a9158307fd210079211165fb507a037ceb75f0 2416 bytes (raw)
name: t/t1309-early-config.sh 	 # note: path name is non-authoritative(*)

  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
 
#!/bin/sh

test_description='Test read_early_config()'

. ./test-lib.sh

test_expect_success 'read early config' '
	test_config early.config correct &&
	test-tool config read_early_config early.config >output &&
	test correct = "$(cat output)"
'

test_expect_success 'in a sub-directory' '
	test_config early.config sub &&
	mkdir -p sub &&
	(
		cd sub &&
		test-tool config read_early_config early.config
	) >output &&
	test sub = "$(cat output)"
'

test_expect_success 'ceiling' '
	test_config early.config ceiling &&
	mkdir -p sub &&
	(
		GIT_CEILING_DIRECTORIES="$PWD" &&
		export GIT_CEILING_DIRECTORIES &&
		cd sub &&
		test-tool config read_early_config early.config
	) >output &&
	test_must_be_empty output
'

test_expect_success 'ceiling #2' '
	mkdir -p xdg/git &&
	git config -f xdg/git/config early.config xdg &&
	test_config early.config ceiling &&
	mkdir -p sub &&
	(
		XDG_CONFIG_HOME="$PWD"/xdg &&
		GIT_CEILING_DIRECTORIES="$PWD" &&
		export GIT_CEILING_DIRECTORIES XDG_CONFIG_HOME &&
		cd sub &&
		test-tool config read_early_config early.config
	) >output &&
	test xdg = "$(cat output)"
'

cmdline_config="'test.source=cmdline'"
test_expect_success 'read config file in right order' '
	echo "[test]source = home" >>.gitconfig &&
	git init foo &&
	(
		cd foo &&
		echo "[test]source = repo" >>.git/config &&
		GIT_CONFIG_PARAMETERS=$cmdline_config test-tool config \
			read_early_config test.source >actual &&
		cat >expected <<-\EOF &&
		home
		repo
		cmdline
		EOF
		test_cmp expected actual
	)
'

test_with_config () {
	rm -rf throwaway &&
	git init throwaway &&
	(
		cd throwaway &&
		echo "$*" >.git/config &&
		test-tool config read_early_config early.config
	)
}

test_expect_success 'ignore .git/ with incompatible repository version' '
	test_with_config "[core]repositoryformatversion = 999999" 2>err &&
	test_i18ngrep "warning:.* Expected git repo version <= [1-9]" err
'

test_expect_failure 'ignore .git/ with invalid repository version' '
	test_with_config "[core]repositoryformatversion = invalid"
'


test_expect_failure 'ignore .git/ with invalid config' '
	test_with_config "["
'

test_expect_success 'early config and onbranch' '
	echo "[broken" >broken &&
	test_with_config "[includeif \"onbranch:topic\"]path=../broken"
'

test_expect_success 'onbranch config outside of git repo' '
	test_config_global includeIf.onbranch:topic.path non-existent &&
	nongit git help
'

test_done

debug log:

solving b4a9158307 ...
found b4a9158307 in https://80x24.org/mirrors/git.git

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public 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).