Skip to content

Commit 2102043

Browse files
pks-tgitster
authored andcommitted
p1400: use git-update-ref --stdin to test multiple transactions
In commit 0a0fbbe (refs: remove lookup cache for reference-transaction hook, 2020-08-25), a new benchmark was added to p1400 which has the intention to exercise creation of multiple transactions in a single process. As git-update-ref wasn't yet able to create multiple transactions with a single run we instead used git-push. As its non-atomic version creates a transaction per reference update, this was the best approximation we could make at that point in time. Now that `git-update-ref --stdin` supports creation of multiple transactions, let's convert the benchmark to use that instead. It has less overhead and it's also a lot clearer what the actual intention is. Signed-off-by: Patrick Steinhardt <[email protected]> Reviewed-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 262a4d2 commit 2102043

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

t/perf/p1400-update-ref.sh

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ test_description="Tests performance of update-ref"
77
test_perf_fresh_repo
88

99
test_expect_success "setup" '
10-
git init --bare target-repo.git &&
1110
test_commit PRE &&
1211
test_commit POST &&
13-
printf "create refs/heads/%d PRE\n" $(test_seq 1000) >create &&
14-
printf "update refs/heads/%d POST PRE\n" $(test_seq 1000) >update &&
15-
printf "delete refs/heads/%d POST\n" $(test_seq 1000) >delete &&
16-
git update-ref --stdin <create
12+
for i in $(test_seq 5000)
13+
do
14+
printf "start\ncreate refs/heads/%d PRE\ncommit\n" $i &&
15+
printf "start\nupdate refs/heads/%d POST PRE\ncommit\n" $i &&
16+
printf "start\ndelete refs/heads/%d POST\ncommit\n" $i
17+
done >instructions
1718
'
1819

1920
test_perf "update-ref" '
@@ -26,14 +27,7 @@ test_perf "update-ref" '
2627
'
2728

2829
test_perf "update-ref --stdin" '
29-
git update-ref --stdin <update &&
30-
git update-ref --stdin <delete &&
31-
git update-ref --stdin <create
32-
'
33-
34-
test_perf "nonatomic push" '
35-
git push ./target-repo.git $(test_seq 1000) &&
36-
git push --delete ./target-repo.git $(test_seq 1000)
30+
git update-ref --stdin <instructions >/dev/null
3731
'
3832

3933
test_done

0 commit comments

Comments
 (0)