Always ensure the pack.keep file is removed by git-fetch
[gitweb.git] / builtin-fsck.c
index 350ec5e1445a3743a4b9a5039d16d9dba505cf4e..8d12287f037c499acad26ea81acab73490c38d5c 100644 (file)
@@ -152,7 +152,17 @@ static void check_unreachable_object(struct object *obj)
                        }
                        if (!(f = fopen(filename, "w")))
                                die("Could not open %s", filename);
-                       fprintf(f, "%s\n", sha1_to_hex(obj->sha1));
+                       if (obj->type == OBJ_BLOB) {
+                               enum object_type type;
+                               unsigned long size;
+                               char *buf = read_sha1_file(obj->sha1,
+                                               &type, &size);
+                               if (buf) {
+                                       fwrite(buf, size, 1, f);
+                                       free(buf);
+                               }
+                       } else
+                               fprintf(f, "%s\n", sha1_to_hex(obj->sha1));
                        fclose(f);
                }
                return;