Merge branch 'ps/ref-transaction-hook'

Code simplification by removing ineffective optimization.

* ps/ref-transaction-hook:
  refs: remove lookup cache for reference-transaction hook
This commit is contained in:
Junio C Hamano 2020-08-31 15:49:52 -07:00
Родитель cacab0c856 0a0fbbe3ff
Коммит 6ddd76fd6c
2 изменённых файлов: 12 добавлений и 12 удалений

11
refs.c
Просмотреть файл

@ -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;

Просмотреть файл

@ -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