summaryrefslogtreecommitdiff
path: root/builtin/fsck.c
diff options
context:
space:
mode:
authorMichael Haggerty <mhagger@alum.mit.edu>2015-06-08 13:40:04 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-06-08 19:37:32 (GMT)
commitd66ae59b8a76c18da2900482c47d4177a1271eb9 (patch)
treea65878f6fc2358fc16682c20a9dd4d39272f4702 /builtin/fsck.c
parent3d4a3ffe64162b45ae7c991fc60623ecb4678cfd (diff)
downloadgit-d66ae59b8a76c18da2900482c47d4177a1271eb9.zip
git-d66ae59b8a76c18da2900482c47d4177a1271eb9.tar.gz
git-d66ae59b8a76c18da2900482c47d4177a1271eb9.tar.bz2
fsck_handle_reflog_sha1(): new function
New function, extracted from fsck_handle_reflog_ent(). The extra is_null_sha1() test for the new reference is currently unnecessary, as reflogs are deleted when the reference itself is deleted. But it doesn't hurt, either. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/fsck.c')
-rw-r--r--builtin/fsck.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/builtin/fsck.c b/builtin/fsck.c
index 0c75786..295d3b9 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -451,28 +451,29 @@ static void fsck_dir(int i, char *path)
static int default_refs;
-static int fsck_handle_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
- const char *email, unsigned long timestamp, int tz,
- const char *message, void *cb_data)
+static void fsck_handle_reflog_sha1(unsigned char *sha1)
{
struct object *obj;
- if (verbose)
- fprintf(stderr, "Checking reflog %s->%s\n",
- sha1_to_hex(osha1), sha1_to_hex(nsha1));
-
- if (!is_null_sha1(osha1)) {
- obj = lookup_object(osha1);
+ if (!is_null_sha1(sha1)) {
+ obj = lookup_object(sha1);
if (obj) {
obj->used = 1;
mark_object_reachable(obj);
}
}
- obj = lookup_object(nsha1);
- if (obj) {
- obj->used = 1;
- mark_object_reachable(obj);
- }
+}
+
+static int fsck_handle_reflog_ent(unsigned char *osha1, unsigned char *nsha1,
+ const char *email, unsigned long timestamp, int tz,
+ const char *message, void *cb_data)
+{
+ if (verbose)
+ fprintf(stderr, "Checking reflog %s->%s\n",
+ sha1_to_hex(osha1), sha1_to_hex(nsha1));
+
+ fsck_handle_reflog_sha1(osha1);
+ fsck_handle_reflog_sha1(nsha1);
return 0;
}