refs: add GIT_TRACE_REFS debugging mechanism
When set in the environment, GIT_TRACE_REFS makes git print operations and
results as they flow through the ref storage backend. This helps debug
discrepancies between different ref backends.
Example:
$ GIT_TRACE_REFS="1" ./git branch
15:42:09.769631 refs/debug.c:26 ref_store for .git
15:42:09.769681 refs/debug.c:249 read_raw_ref: HEAD: 0000000000000000000000000000000000000000 (=> refs/heads/ref-debug) type 1: 0
15:42:09.769695 refs/debug.c:249 read_raw_ref: refs/heads/ref-debug: 3a238e539b (=> refs/heads/ref-debug) type 0: 0
15:42:09.770282 refs/debug.c:233 ref_iterator_begin: refs/heads/ (0x1)
15:42:09.770290 refs/debug.c:189 iterator_advance: refs/heads/b4 (0)
15:42:09.770295 refs/debug.c:189 iterator_advance: refs/heads/branch3 (0)
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
3a238e539b
commit
4441f42707
@ -690,4 +690,9 @@ int parse_loose_ref_contents(const char *buf, struct object_id *oid,
|
||||
void base_ref_store_init(struct ref_store *refs,
|
||||
const struct ref_storage_be *be);
|
||||
|
||||
/*
|
||||
* Support GIT_TRACE_REFS by optionally wrapping the given ref_store instance.
|
||||
*/
|
||||
struct ref_store *maybe_debug_wrap_ref_store(const char *gitdir, struct ref_store *store);
|
||||
|
||||
#endif /* REFS_REFS_INTERNAL_H */
|
||||
|
||||
Reference in New Issue
Block a user