]> git.ipfire.org Git - thirdparty/git.git/commit - fsck.c
fsck_walk(): optionally name objects on the go
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Sun, 17 Jul 2016 10:59:49 +0000 (12:59 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 18 Jul 2016 18:35:00 +0000 (11:35 -0700)
commit7b35efd734e501f9e4692768a8b6aea818c0c93e
tree305cc01660799f6b73d1ede6360b03046077bccc
parent993a21b0a05bf2e2063c58e5722c29f5747e39d4
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>
fsck.c
fsck.h