commit
41ce93bea4
|
@ -10,7 +10,7 @@ SYNOPSIS
|
||||||
--------
|
--------
|
||||||
[verse]
|
[verse]
|
||||||
'git-fsck-objects' [--tags] [--root] [--unreachable] [--cache]
|
'git-fsck-objects' [--tags] [--root] [--unreachable] [--cache]
|
||||||
[--standalone | --full] [--strict] [<object>*]
|
[--full] [--strict] [<object>*]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
@ -38,21 +38,14 @@ index file and all SHA1 references in .git/refs/* as heads.
|
||||||
Consider any object recorded in the index also as a head node for
|
Consider any object recorded in the index also as a head node for
|
||||||
an unreachability trace.
|
an unreachability trace.
|
||||||
|
|
||||||
--standalone::
|
|
||||||
Limit checks to the contents of GIT_OBJECT_DIRECTORY
|
|
||||||
($GIT_DIR/objects), making sure that it is consistent and
|
|
||||||
complete without referring to objects found in alternate
|
|
||||||
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES,
|
|
||||||
nor packed git archives found in $GIT_DIR/objects/pack;
|
|
||||||
cannot be used with --full.
|
|
||||||
|
|
||||||
--full::
|
--full::
|
||||||
Check not just objects in GIT_OBJECT_DIRECTORY
|
Check not just objects in GIT_OBJECT_DIRECTORY
|
||||||
($GIT_DIR/objects), but also the ones found in alternate
|
($GIT_DIR/objects), but also the ones found in alternate
|
||||||
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES,
|
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES
|
||||||
|
or $GIT_DIR/objects/info/alternates,
|
||||||
and in packed git archives found in $GIT_DIR/objects/pack
|
and in packed git archives found in $GIT_DIR/objects/pack
|
||||||
and corresponding pack subdirectories in alternate
|
and corresponding pack subdirectories in alternate
|
||||||
object pools; cannot be used with --standalone.
|
object pools.
|
||||||
|
|
||||||
--strict::
|
--strict::
|
||||||
Enable more strict checking, namely to catch a file mode
|
Enable more strict checking, namely to catch a file mode
|
||||||
|
|
|
@ -14,10 +14,9 @@
|
||||||
static int show_root = 0;
|
static int show_root = 0;
|
||||||
static int show_tags = 0;
|
static int show_tags = 0;
|
||||||
static int show_unreachable = 0;
|
static int show_unreachable = 0;
|
||||||
static int standalone = 0;
|
|
||||||
static int check_full = 0;
|
static int check_full = 0;
|
||||||
static int check_strict = 0;
|
static int check_strict = 0;
|
||||||
static int keep_cache_objects = 0;
|
static int keep_cache_objects = 0;
|
||||||
static unsigned char head_sha1[20];
|
static unsigned char head_sha1[20];
|
||||||
|
|
||||||
#ifdef NO_D_INO_IN_DIRENT
|
#ifdef NO_D_INO_IN_DIRENT
|
||||||
|
@ -68,7 +67,7 @@ static void check_connectivity(void)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!obj->parsed) {
|
if (!obj->parsed) {
|
||||||
if (!standalone && has_sha1_file(obj->sha1))
|
if (has_sha1_file(obj->sha1))
|
||||||
; /* it is in pack */
|
; /* it is in pack */
|
||||||
else
|
else
|
||||||
printf("missing %s %s\n",
|
printf("missing %s %s\n",
|
||||||
|
@ -82,7 +81,7 @@ static void check_connectivity(void)
|
||||||
for (j = 0; j < refs->count; j++) {
|
for (j = 0; j < refs->count; j++) {
|
||||||
struct object *ref = refs->ref[j];
|
struct object *ref = refs->ref[j];
|
||||||
if (ref->parsed ||
|
if (ref->parsed ||
|
||||||
(!standalone && has_sha1_file(ref->sha1)))
|
(has_sha1_file(ref->sha1)))
|
||||||
continue;
|
continue;
|
||||||
printf("broken link from %7s %s\n",
|
printf("broken link from %7s %s\n",
|
||||||
obj->type, sha1_to_hex(obj->sha1));
|
obj->type, sha1_to_hex(obj->sha1));
|
||||||
|
@ -390,7 +389,7 @@ static int fsck_handle_ref(const char *refname, const unsigned char *sha1)
|
||||||
|
|
||||||
obj = lookup_object(sha1);
|
obj = lookup_object(sha1);
|
||||||
if (!obj) {
|
if (!obj) {
|
||||||
if (!standalone && has_sha1_file(sha1)) {
|
if (has_sha1_file(sha1)) {
|
||||||
default_refs++;
|
default_refs++;
|
||||||
return 0; /* it is in a pack */
|
return 0; /* it is in a pack */
|
||||||
}
|
}
|
||||||
|
@ -464,10 +463,6 @@ int main(int argc, char **argv)
|
||||||
keep_cache_objects = 1;
|
keep_cache_objects = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!strcmp(arg, "--standalone")) {
|
|
||||||
standalone = 1;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (!strcmp(arg, "--full")) {
|
if (!strcmp(arg, "--full")) {
|
||||||
check_full = 1;
|
check_full = 1;
|
||||||
continue;
|
continue;
|
||||||
|
@ -477,14 +472,9 @@ int main(int argc, char **argv)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (*arg == '-')
|
if (*arg == '-')
|
||||||
usage("git-fsck-objects [--tags] [--root] [[--unreachable] [--cache] [--standalone | --full] [--strict] <head-sha1>*]");
|
usage("git-fsck-objects [--tags] [--root] [[--unreachable] [--cache] [--full] [--strict] <head-sha1>*]");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (standalone && check_full)
|
|
||||||
die("Only one of --standalone or --full can be used.");
|
|
||||||
if (standalone)
|
|
||||||
putenv("GIT_ALTERNATE_OBJECT_DIRECTORIES=");
|
|
||||||
|
|
||||||
fsck_head_link();
|
fsck_head_link();
|
||||||
fsck_object_dir(get_object_directory());
|
fsck_object_dir(get_object_directory());
|
||||||
if (check_full) {
|
if (check_full) {
|
||||||
|
|
Loading…
Reference in New Issue