diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-08-31 15:49:52 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-08-31 15:49:53 -0700 |
commit | 6ddd76fd6c356c037b5d5272732900f1f952721e (patch) | |
tree | 68aecad307e522635c853e61a08e69f28c995e04 | |
parent | Merge branch 'jk/rev-input-given-fix' (diff) | |
parent | refs: remove lookup cache for reference-transaction hook (diff) | |
download | tgif-6ddd76fd6c356c037b5d5272732900f1f952721e.tar.xz |
Merge branch 'ps/ref-transaction-hook'
Code simplification by removing ineffective optimization.
* ps/ref-transaction-hook:
refs: remove lookup cache for reference-transaction hook
-rw-r--r-- | refs.c | 11 | ||||
-rwxr-xr-x | t/perf/p1400-update-ref.sh | 13 |
2 files changed, 12 insertions, 12 deletions
@@ -1950,24 +1950,17 @@ int ref_update_reject_duplicates(struct string_list *refnames, return 0; } -static const char hook_not_found; -static const char *hook; - static int run_transaction_hook(struct ref_transaction *transaction, const char *state) { struct child_process proc = CHILD_PROCESS_INIT; struct strbuf buf = STRBUF_INIT; + const char *hook; int ret = 0, i; - if (hook == &hook_not_found) - return ret; + hook = find_hook("reference-transaction"); if (!hook) - hook = xstrdup_or_null(find_hook("reference-transaction")); - if (!hook) { - hook = &hook_not_found; return ret; - } strvec_pushl(&proc.args, hook, state, NULL); proc.in = -1; diff --git a/t/perf/p1400-update-ref.sh b/t/perf/p1400-update-ref.sh index d275a81248..ce5ac3ed85 100755 --- a/t/perf/p1400-update-ref.sh +++ b/t/perf/p1400-update-ref.sh @@ -7,11 +7,13 @@ test_description="Tests performance of update-ref" test_perf_fresh_repo test_expect_success "setup" ' + git init --bare target-repo.git && test_commit PRE && test_commit POST && printf "create refs/heads/%d PRE\n" $(test_seq 1000) >create && printf "update refs/heads/%d POST PRE\n" $(test_seq 1000) >update && - printf "delete refs/heads/%d POST\n" $(test_seq 1000) >delete + printf "delete refs/heads/%d POST\n" $(test_seq 1000) >delete && + git update-ref --stdin <create ' test_perf "update-ref" ' @@ -24,9 +26,14 @@ test_perf "update-ref" ' ' test_perf "update-ref --stdin" ' - git update-ref --stdin <create && git update-ref --stdin <update && - git update-ref --stdin <delete + git update-ref --stdin <delete && + git update-ref --stdin <create +' + +test_perf "nonatomic push" ' + git push ./target-repo.git $(test_seq 1000) && + git push --delete ./target-repo.git $(test_seq 1000) ' test_done |