#include "git-compat-util.h" #include "hex.h" #include "refs-internal.h" #include "string-list.h" #include "trace.h" static struct trace_key trace_refs = …; struct debug_ref_store { … }; extern struct ref_storage_be refs_be_debug; struct ref_store *maybe_debug_wrap_ref_store(const char *gitdir, struct ref_store *store) { … } static void debug_release(struct ref_store *refs) { … } static int debug_create_on_disk(struct ref_store *refs, int flags, struct strbuf *err) { … } static int debug_transaction_prepare(struct ref_store *refs, struct ref_transaction *transaction, struct strbuf *err) { … } static void print_update(int i, const char *refname, const struct object_id *old_oid, const struct object_id *new_oid, unsigned int flags, unsigned int type, const char *msg) { … } static void print_transaction(struct ref_transaction *transaction) { … } static int debug_transaction_finish(struct ref_store *refs, struct ref_transaction *transaction, struct strbuf *err) { … } static int debug_transaction_abort(struct ref_store *refs, struct ref_transaction *transaction, struct strbuf *err) { … } static int debug_initial_transaction_commit(struct ref_store *refs, struct ref_transaction *transaction, struct strbuf *err) { … } static int debug_pack_refs(struct ref_store *ref_store, struct pack_refs_opts *opts) { … } static int debug_rename_ref(struct ref_store *ref_store, const char *oldref, const char *newref, const char *logmsg) { … } static int debug_copy_ref(struct ref_store *ref_store, const char *oldref, const char *newref, const char *logmsg) { … } struct debug_ref_iterator { … }; static int debug_ref_iterator_advance(struct ref_iterator *ref_iterator) { … } static int debug_ref_iterator_peel(struct ref_iterator *ref_iterator, struct object_id *peeled) { … } static int debug_ref_iterator_abort(struct ref_iterator *ref_iterator) { … } static struct ref_iterator_vtable debug_ref_iterator_vtable = …; static struct ref_iterator * debug_ref_iterator_begin(struct ref_store *ref_store, const char *prefix, const char **exclude_patterns, unsigned int flags) { … } static int debug_read_raw_ref(struct ref_store *ref_store, const char *refname, struct object_id *oid, struct strbuf *referent, unsigned int *type, int *failure_errno) { … } static int debug_read_symbolic_ref(struct ref_store *ref_store, const char *refname, struct strbuf *referent) { … } static struct ref_iterator * debug_reflog_iterator_begin(struct ref_store *ref_store) { … } struct debug_reflog { … }; static int debug_print_reflog_ent(struct object_id *old_oid, struct object_id *new_oid, const char *committer, timestamp_t timestamp, int tz, const char *msg, void *cb_data) { … } static int debug_for_each_reflog_ent(struct ref_store *ref_store, const char *refname, each_reflog_ent_fn fn, void *cb_data) { … } static int debug_for_each_reflog_ent_reverse(struct ref_store *ref_store, const char *refname, each_reflog_ent_fn fn, void *cb_data) { … } static int debug_reflog_exists(struct ref_store *ref_store, const char *refname) { … } static int debug_create_reflog(struct ref_store *ref_store, const char *refname, struct strbuf *err) { … } static int debug_delete_reflog(struct ref_store *ref_store, const char *refname) { … } struct debug_reflog_expiry_should_prune { … }; static void debug_reflog_expiry_prepare(const char *refname, const struct object_id *oid, void *cb_data) { … } static int debug_reflog_expiry_should_prune_fn(struct object_id *ooid, struct object_id *noid, const char *email, timestamp_t timestamp, int tz, const char *message, void *cb_data) { … } static void debug_reflog_expiry_cleanup(void *cb_data) { … } static int debug_reflog_expire(struct ref_store *ref_store, const char *refname, unsigned int flags, reflog_expiry_prepare_fn prepare_fn, reflog_expiry_should_prune_fn should_prune_fn, reflog_expiry_cleanup_fn cleanup_fn, void *policy_cb_data) { … } static int debug_fsck(struct ref_store *ref_store, struct fsck_options *o) { … } struct ref_storage_be refs_be_debug = …;