summaryrefslogtreecommitdiff
path: root/fsck.h
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2016-07-17 10:59:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-07-18 18:35:00 (GMT)
commit7b35efd734e501f9e4692768a8b6aea818c0c93e (patch)
tree305cc01660799f6b73d1ede6360b03046077bccc /fsck.h
parent993a21b0a05bf2e2063c58e5722c29f5747e39d4 (diff)
downloadgit-7b35efd734e501f9e4692768a8b6aea818c0c93e.zip
git-7b35efd734e501f9e4692768a8b6aea818c0c93e.tar.gz
git-7b35efd734e501f9e4692768a8b6aea818c0c93e.tar.bz2
fsck_walk(): optionally name objects on the go
If fsck_options->name_objects is initialized, and if it already has name(s) for the object(s) that are to be the starting point(s) for fsck_walk(), then that function will now add names for the objects that were walked. This will be highly useful for teaching git-fsck to identify root causes for broken links, which is the task for the next patch in this series. Note that this patch opts for decorating the objects with plain strings instead of full-blown structs (à la `struct rev_name` in the code of the `git name-rev` command), for several reasons: - the code is much simpler than if it had to work with structs that describe arbitrarily long names such as "master~14^2~5:builtin/am.c", - the string processing is actually quite light-weight compared to the rest of fsck's operation, - the caller of fsck_walk() is expected to provide names for the starting points, and using plain and simple strings is just the easiest way to do that. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'fsck.h')
-rw-r--r--fsck.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fsck.h b/fsck.h
index dded84b..26c0d41 100644
--- a/fsck.h
+++ b/fsck.h
@@ -33,6 +33,7 @@ struct fsck_options {
unsigned strict:1;
int *msg_type;
struct sha1_array *skiplist;
+ struct decoration *object_names;
};
#define FSCK_OPTIONS_DEFAULT { NULL, fsck_error_function, 0, NULL }