mirror of
https://github.com/git/git.git
synced 2026-05-31 11:19:02 +02:00
refs: extract out reflog config to generic layer
The reference backends need to know when to create reflog entries, this is dictated by the 'core.logallrefupdates' config. Instead of relying on the backends to call `repo_settings_get_log_all_ref_updates()` to obtain this config value, let's do this in the generic layer and pass down the value to the backends. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
d194dffcfd
commit
cc42c88945
@@ -2297,6 +2297,7 @@ static struct ref_store *ref_store_init(struct repository *repo,
|
||||
struct ref_store *refs;
|
||||
struct ref_store_init_options opts = {
|
||||
.access_flags = flags,
|
||||
.log_all_ref_updates = repo_settings_get_log_all_ref_updates(repo),
|
||||
};
|
||||
|
||||
be = find_ref_storage_backend(format);
|
||||
|
||||
@@ -125,7 +125,7 @@ static struct ref_store *files_ref_store_init(struct repository *repo,
|
||||
refs->packed_ref_store =
|
||||
packed_ref_store_init(repo, NULL, refs->gitcommondir, opts);
|
||||
refs->store_flags = opts->access_flags;
|
||||
refs->log_all_ref_updates = repo_settings_get_log_all_ref_updates(repo);
|
||||
refs->log_all_ref_updates = opts->log_all_ref_updates;
|
||||
|
||||
repo_config_get_bool(repo, "core.prefersymlinkrefs", &refs->prefer_symlink_refs);
|
||||
|
||||
|
||||
@@ -392,6 +392,12 @@ struct ref_store;
|
||||
struct ref_store_init_options {
|
||||
/* The kind of operations that the ref_store is allowed to perform. */
|
||||
unsigned int access_flags;
|
||||
|
||||
/*
|
||||
* Denotes under what conditions reflogs should be created when updating
|
||||
* references.
|
||||
*/
|
||||
enum log_refs_config log_all_ref_updates;
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -386,7 +386,7 @@ static struct ref_store *reftable_be_init(struct repository *repo,
|
||||
|
||||
base_ref_store_init(&refs->base, repo, refdir.buf, &refs_be_reftable);
|
||||
strmap_init(&refs->worktree_backends);
|
||||
refs->log_all_ref_updates = repo_settings_get_log_all_ref_updates(repo);
|
||||
refs->log_all_ref_updates = opts->log_all_ref_updates;
|
||||
refs->store_flags = opts->access_flags;
|
||||
|
||||
switch (repo->hash_algo->format_id) {
|
||||
|
||||
Reference in New Issue
Block a user