summaryrefslogtreecommitdiff
path: root/t/perf/p6100-describe.sh
blob: b1c61529bb7bf8ff64c15ae42576774b5d05fabf (plain)
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
#!/bin/sh

test_description='performance of git-describe'
. ./perf-lib.sh

test_perf_default_repo

# clear out old tags and give us a known state
test_expect_success 'set up tags' '
	git for-each-ref --format="delete %(refname)" refs/tags >to-delete &&
	git update-ref --stdin <to-delete &&
	new=$(git rev-list -1000 HEAD | tail -n 1) &&
	git tag -m new new $new &&
	old=$(git rev-list       HEAD | tail -n 1) &&
	git tag -m old old $old
'

test_perf 'describe HEAD' '
	git describe HEAD
'

test_perf 'describe HEAD with one max candidate' '
	git describe --candidates=1 HEAD
'

test_perf 'describe HEAD with one tag' '
	git describe --match=new HEAD
'

test_expect_success 'set up many unrelated refs' '
	ref_count=10000 &&
	git tag -m tip tip HEAD &&
	test_seq -f "create refs/heads/describe-perf/%05d HEAD" $ref_count |
	git update-ref --stdin &&
	git pack-refs --all
'

test_perf 'describe exact tag with many unrelated refs' '
	git describe --exact-match HEAD
'

test_done