Revision 1995b5e03e1cc97116be58cdc0502d4a23547856 authored by Jeff King on 02 May 2018, 21:20:35 UTC, committed by Jeff King on 22 May 2018, 03:55:12 UTC
Now that the internal fsck code is capable of checking
.gitmodules files, we just need to teach its callers to use
the "finish" function to check any queued objects.

With this, we can now catch the malicious case in t7415 with
git-fsck.

Signed-off-by: Jeff King <peff@peff.net>
1 parent ed8b10f
Raw File
walker.h
#ifndef WALKER_H
#define WALKER_H

#include "remote.h"

struct walker {
	void *data;
	int (*fetch_ref)(struct walker *, struct ref *ref);
	void (*prefetch)(struct walker *, unsigned char *sha1);
	int (*fetch)(struct walker *, unsigned char *sha1);
	void (*cleanup)(struct walker *);
	int get_tree;
	int get_history;
	int get_all;
	int get_verbosely;
	int get_recover;

	int corrupt_object_found;
};

/* Report what we got under get_verbosely */
__attribute__((format (printf, 2, 3)))
void walker_say(struct walker *walker, const char *fmt, ...);

/* Load pull targets from stdin */
int walker_targets_stdin(char ***target, const char ***write_ref);

/* Free up loaded targets */
void walker_targets_free(int targets, char **target, const char **write_ref);

/* If write_ref is set, the ref filename to write the target value to. */
/* If write_ref_log_details is set, additional text will appear in the ref log. */
int walker_fetch(struct walker *impl, int targets, char **target,
		 const char **write_ref, const char *write_ref_log_details);

void walker_free(struct walker *walker);

struct walker *get_http_walker(const char *url);

#endif /* WALKER_H */
back to top