git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
2e9e36978698eacb945288e9181b134b5c651d8a blob 4728 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
 
#!/bin/sh

test_description='git maintenance builtin'

. ./test-lib.sh

GIT_TEST_COMMIT_GRAPH=0

test_expect_success 'help text' '
	test_expect_code 129 git maintenance -h 2>err &&
	test_i18ngrep "usage: git maintenance run" err &&
	test_expect_code 128 git maintenance barf 2>err &&
	test_i18ngrep "invalid subcommand: barf" err
'

test_expect_success 'run [--auto|--quiet]' '
	GIT_TRACE2_EVENT="$(pwd)/run-no-auto.txt" \
		git maintenance run 2>/dev/null &&
	GIT_TRACE2_EVENT="$(pwd)/run-auto.txt" \
		git maintenance run --auto 2>/dev/null &&
	GIT_TRACE2_EVENT="$(pwd)/run-no-quiet.txt" \
		git maintenance run --no-quiet 2>/dev/null &&
	test_subcommand git gc --quiet <run-no-auto.txt &&
	test_subcommand ! git gc --auto --quiet <run-auto.txt &&
	test_subcommand git gc --no-quiet <run-no-quiet.txt
'

test_expect_success 'maintenance.<task>.enabled' '
	git config maintenance.gc.enabled false &&
	git config maintenance.commit-graph.enabled true &&
	GIT_TRACE2_EVENT="$(pwd)/run-config.txt" git maintenance run 2>err &&
	test_subcommand ! git gc --quiet <run-config.txt &&
	test_subcommand git commit-graph write --split --reachable --no-progress <run-config.txt
'

test_expect_success 'run --task=<task>' '
	GIT_TRACE2_EVENT="$(pwd)/run-commit-graph.txt" \
		git maintenance run --task=commit-graph 2>/dev/null &&
	GIT_TRACE2_EVENT="$(pwd)/run-gc.txt" \
		git maintenance run --task=gc 2>/dev/null &&
	GIT_TRACE2_EVENT="$(pwd)/run-commit-graph.txt" \
		git maintenance run --task=commit-graph 2>/dev/null &&
	GIT_TRACE2_EVENT="$(pwd)/run-both.txt" \
		git maintenance run --task=commit-graph --task=gc 2>/dev/null &&
	test_subcommand ! git gc --quiet <run-commit-graph.txt &&
	test_subcommand git gc --quiet <run-gc.txt &&
	test_subcommand git gc --quiet <run-both.txt &&
	test_subcommand git commit-graph write --split --reachable --no-progress <run-commit-graph.txt &&
	test_subcommand ! git commit-graph write --split --reachable --no-progress <run-gc.txt &&
	test_subcommand git commit-graph write --split --reachable --no-progress <run-both.txt
'

test_expect_success 'run --task=bogus' '
	test_must_fail git maintenance run --task=bogus 2>err &&
	test_i18ngrep "is not a valid task" err
'

test_expect_success 'run --task duplicate' '
	test_must_fail git maintenance run --task=gc --task=gc 2>err &&
	test_i18ngrep "cannot be selected multiple times" err
'

test_expect_success 'run --task=prefetch with no remotes' '
	git maintenance run --task=prefetch 2>err &&
	test_must_be_empty err
'

test_expect_success 'prefetch multiple remotes' '
	git clone . clone1 &&
	git clone . clone2 &&
	git remote add remote1 "file://$(pwd)/clone1" &&
	git remote add remote2 "file://$(pwd)/clone2" &&
	git -C clone1 switch -c one &&
	git -C clone2 switch -c two &&
	test_commit -C clone1 one &&
	test_commit -C clone2 two &&
	GIT_TRACE2_EVENT="$(pwd)/run-prefetch.txt" git maintenance run --task=prefetch 2>/dev/null &&
	fetchargs="--prune --no-tags --no-write-fetch-head --recurse-submodules=no --refmap= --quiet" &&
	test_subcommand git fetch remote1 $fetchargs +refs/heads/\\*:refs/prefetch/remote1/\\* <run-prefetch.txt &&
	test_subcommand git fetch remote2 $fetchargs +refs/heads/\\*:refs/prefetch/remote2/\\* <run-prefetch.txt &&
	test_path_is_missing .git/refs/remotes &&
	git log prefetch/remote1/one &&
	git log prefetch/remote2/two &&
	git fetch --all &&
	test_cmp_rev refs/remotes/remote1/one refs/prefetch/remote1/one &&
	test_cmp_rev refs/remotes/remote2/two refs/prefetch/remote2/two
'

test_expect_success 'loose-objects task' '
	# Repack everything so we know the state of the object dir
	git repack -adk &&

	# Hack to stop maintenance from running during "git commit"
	echo in use >.git/objects/maintenance.lock &&

	# Assuming that "git commit" creates at least one loose object
	test_commit create-loose-object &&
	rm .git/objects/maintenance.lock &&

	ls .git/objects >obj-dir-before &&
	test_file_not_empty obj-dir-before &&
	ls .git/objects/pack/*.pack >packs-before &&
	test_line_count = 1 packs-before &&

	# The first run creates a pack-file
	# but does not delete loose objects.
	git maintenance run --task=loose-objects &&
	ls .git/objects >obj-dir-between &&
	test_cmp obj-dir-before obj-dir-between &&
	ls .git/objects/pack/*.pack >packs-between &&
	test_line_count = 2 packs-between &&
	ls .git/objects/pack/loose-*.pack >loose-packs &&
	test_line_count = 1 loose-packs &&

	# The second run deletes loose objects
	# but does not create a pack-file.
	git maintenance run --task=loose-objects &&
	ls .git/objects >obj-dir-after &&
	cat >expect <<-\EOF &&
	info
	pack
	EOF
	test_cmp expect obj-dir-after &&
	ls .git/objects/pack/*.pack >packs-after &&
	test_cmp packs-between packs-after
'

test_done
debug log:

solving 2e9e369786 ...
found 2e9e369786 in https://public-inbox.org/git/75e846456b8ac4a3518ecc9051c927539dd7ff08.1598380599.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/4fa9d298b98fa8b83108d9d9c58aef0eab934ee5.1597760730.git.gitgitgadget@gmail.com/
found 0bade09c43 in https://public-inbox.org/git/da64c51a8182ec13aeed8f0157079fb29a09ee85.1598380599.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/8779c6c20d7e25e13189074dbd57a86b49ec56e9.1597760730.git.gitgitgadget@gmail.com/
found 4f6a04ddb1 in https://public-inbox.org/git/f5f1e85b030a0ed5774bc115f90fbd8209bdf17d.1599224956.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/69d3b48fd4474783579297d3d25f04dd8f1e7673.1598380427.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/68bf5bef4bebea48234b6f5c75c7a07d38ca15c0.1597760589.git.gitgitgadget@gmail.com/
found 290abb7832 in https://public-inbox.org/git/5c0f9d69d18d51f19fcd76fca647c1df6711d70f.1597760589.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/dc2a092366d49ae4dc4756e1f4e10b783bbc44a8.1599224956.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/712f5f2d8ec3548c152c20b50b75a58b773ce3f4.1598380427.git.gitgitgadget@gmail.com/
found 792765aff7 in https://public-inbox.org/git/85268bd53ef7f4e7b3d97a8ae091290e8e74441d.1597760589.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/69298aee24f317b03c39eef341f4d6ebebd88bc7.1599224956.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/69298aee24f317b03c39eef341f4d6ebebd88bc7.1598380427.git.gitgitgadget@gmail.com/
found c0c4e6846e in https://public-inbox.org/git/06984a42bfc892b82f7b39a1aa366158fcf3fd20.1599224956.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/06984a42bfc892b82f7b39a1aa366158fcf3fd20.1598380427.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/50b457fd57aef4e9ac6a15549561936dc962ef36.1597760589.git.gitgitgadget@gmail.com/
found 47d512464c in https://public-inbox.org/git/5386d8a6283d814c0d0d2b7a180409f064cea709.1599224956.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/adae48d235aecf3c2f6e709a2855b9066a9a9e38.1597760589.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/5386d8a6283d814c0d0d2b7a180409f064cea709.1598380427.git.gitgitgadget@gmail.com/
found 14aa691f19 in https://public-inbox.org/git/e09e4a4a87c09c88ceacf56a3d298de7b5ad3274.1597760589.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/aa961af387b7f458f75ad60b9a2a45da4bb43794.1599224956.git.gitgitgadget@gmail.com/ ||
	https://public-inbox.org/git/aa961af387b7f458f75ad60b9a2a45da4bb43794.1598380427.git.gitgitgadget@gmail.com/

applying [1/22] https://public-inbox.org/git/e09e4a4a87c09c88ceacf56a3d298de7b5ad3274.1597760589.git.gitgitgadget@gmail.com/
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
new file mode 100755
index 0000000000..14aa691f19

Checking patch t/t7900-maintenance.sh...
Applied patch t/t7900-maintenance.sh cleanly.

skipping https://public-inbox.org/git/aa961af387b7f458f75ad60b9a2a45da4bb43794.1599224956.git.gitgitgadget@gmail.com/ for 14aa691f19
skipping https://public-inbox.org/git/aa961af387b7f458f75ad60b9a2a45da4bb43794.1598380427.git.gitgitgadget@gmail.com/ for 14aa691f19
index at:
100755 14aa691f19c7af42c8c8b852d48630ea85e3d87b	t/t7900-maintenance.sh

applying [2/22] https://public-inbox.org/git/5386d8a6283d814c0d0d2b7a180409f064cea709.1599224956.git.gitgitgadget@gmail.com/
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
index 14aa691f19..47d512464c 100755

Checking patch t/t7900-maintenance.sh...
Applied patch t/t7900-maintenance.sh cleanly.

skipping https://public-inbox.org/git/adae48d235aecf3c2f6e709a2855b9066a9a9e38.1597760589.git.gitgitgadget@gmail.com/ for 47d512464c
skipping https://public-inbox.org/git/5386d8a6283d814c0d0d2b7a180409f064cea709.1598380427.git.gitgitgadget@gmail.com/ for 47d512464c
index at:
100755 47d512464c876103344e0150d9d1f7741897c63e	t/t7900-maintenance.sh

applying [3/22] https://public-inbox.org/git/06984a42bfc892b82f7b39a1aa366158fcf3fd20.1599224956.git.gitgitgadget@gmail.com/
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
index 47d512464c..c0c4e6846e 100755

Checking patch t/t7900-maintenance.sh...
Applied patch t/t7900-maintenance.sh cleanly.

skipping https://public-inbox.org/git/06984a42bfc892b82f7b39a1aa366158fcf3fd20.1598380427.git.gitgitgadget@gmail.com/ for c0c4e6846e
skipping https://public-inbox.org/git/50b457fd57aef4e9ac6a15549561936dc962ef36.1597760589.git.gitgitgadget@gmail.com/ for c0c4e6846e
index at:
100755 c0c4e6846e203bf59f258be734e9ba49a8639684	t/t7900-maintenance.sh

applying [4/22] https://public-inbox.org/git/85268bd53ef7f4e7b3d97a8ae091290e8e74441d.1597760589.git.gitgitgadget@gmail.com/
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
index c0c4e6846e..792765aff7 100755

Checking patch t/t7900-maintenance.sh...
Applied patch t/t7900-maintenance.sh cleanly.

skipping https://public-inbox.org/git/69298aee24f317b03c39eef341f4d6ebebd88bc7.1599224956.git.gitgitgadget@gmail.com/ for 792765aff7
skipping https://public-inbox.org/git/69298aee24f317b03c39eef341f4d6ebebd88bc7.1598380427.git.gitgitgadget@gmail.com/ for 792765aff7
index at:
100755 792765aff739a501d54c1a6498f2a30180e67e3e	t/t7900-maintenance.sh

applying [5/22] https://public-inbox.org/git/5c0f9d69d18d51f19fcd76fca647c1df6711d70f.1597760589.git.gitgitgadget@gmail.com/
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
index 792765aff7..290abb7832 100755

Checking patch t/t7900-maintenance.sh...
Applied patch t/t7900-maintenance.sh cleanly.

skipping https://public-inbox.org/git/dc2a092366d49ae4dc4756e1f4e10b783bbc44a8.1599224956.git.gitgitgadget@gmail.com/ for 290abb7832
skipping https://public-inbox.org/git/712f5f2d8ec3548c152c20b50b75a58b773ce3f4.1598380427.git.gitgitgadget@gmail.com/ for 290abb7832
index at:
100755 290abb7832914b68cdab0ed37c7fb480bd411055	t/t7900-maintenance.sh

applying [6/22] https://public-inbox.org/git/f5f1e85b030a0ed5774bc115f90fbd8209bdf17d.1599224956.git.gitgitgadget@gmail.com/
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
index 290abb7832..4f6a04ddb1 100755

Checking patch t/t7900-maintenance.sh...
Applied patch t/t7900-maintenance.sh cleanly.

skipping https://public-inbox.org/git/69d3b48fd4474783579297d3d25f04dd8f1e7673.1598380427.git.gitgitgadget@gmail.com/ for 4f6a04ddb1
skipping https://public-inbox.org/git/68bf5bef4bebea48234b6f5c75c7a07d38ca15c0.1597760589.git.gitgitgadget@gmail.com/ for 4f6a04ddb1
index at:
100755 4f6a04ddb1ef4566265d0726bac5c091186c5f99	t/t7900-maintenance.sh

applying [7/22] https://public-inbox.org/git/da64c51a8182ec13aeed8f0157079fb29a09ee85.1598380599.git.gitgitgadget@gmail.com/
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
index 4f6a04ddb1..0bade09c43 100755

Checking patch t/t7900-maintenance.sh...
Applied patch t/t7900-maintenance.sh cleanly.

skipping https://public-inbox.org/git/8779c6c20d7e25e13189074dbd57a86b49ec56e9.1597760730.git.gitgitgadget@gmail.com/ for 0bade09c43
index at:
100755 0bade09c435336b43af7fd6b6e3b858682c3dfd4	t/t7900-maintenance.sh

applying [8/22] https://public-inbox.org/git/75e846456b8ac4a3518ecc9051c927539dd7ff08.1598380599.git.gitgitgadget@gmail.com/
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
index 0bade09c43..2e9e369786 100755

Checking patch t/t7900-maintenance.sh...
Applied patch t/t7900-maintenance.sh cleanly.

skipping https://public-inbox.org/git/4fa9d298b98fa8b83108d9d9c58aef0eab934ee5.1597760730.git.gitgitgadget@gmail.com/ for 2e9e369786
index at:
100755 2e9e36978698eacb945288e9181b134b5c651d8a	t/t7900-maintenance.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).