Skip to content

Commit

Permalink
fsck-objects: Remove --standalone
Browse files Browse the repository at this point in the history
The fsck-objects command (back then it was called fsck-cache)
used to complain if objects referred to by files in .git/refs/
or objects stored in files under .git/objects/??/ were not found
as stand-alone SHA1 files (i.e.  found in alternate object pools
or packed archives stored under .git/objects/pack).  Back then,
packs and alternates were new curiosity and having everything as
loose objects were the norm.

When we adjusted the behaviour of fsck-cache to consider objects
found in packs are OK, we introduced the --standalone flag as a
backward compatibility measure.

It still correctly checks if your repository is complete and
consists only of loose objects, so in that sense it is doing the
"right" thing, but checking that is pointless these days.  This
commit removes --standalone flag.

See also:

	23676d4
	8a498a0

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Mar 9, 2006
1 parent f61c2c9 commit 7aaa715
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 26 deletions.
15 changes: 4 additions & 11 deletions Documentation/git-fsck-objects.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git-fsck-objects' [--tags] [--root] [--unreachable] [--cache]
[--standalone | --full] [--strict] [<object>*]
[--full] [--strict] [<object>*]

DESCRIPTION
-----------
Expand Down Expand Up @@ -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
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::
Check not just objects in GIT_OBJECT_DIRECTORY
($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 corresponding pack subdirectories in alternate
object pools; cannot be used with --standalone.
object pools.

--strict::
Enable more strict checking, namely to catch a file mode
Expand Down
20 changes: 5 additions & 15 deletions fsck-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@
static int show_root = 0;
static int show_tags = 0;
static int show_unreachable = 0;
static int standalone = 0;
static int check_full = 0;
static int check_strict = 0;
static int keep_cache_objects = 0;
static int keep_cache_objects = 0;
static unsigned char head_sha1[20];

#ifdef NO_D_INO_IN_DIRENT
Expand Down Expand Up @@ -68,7 +67,7 @@ static void check_connectivity(void)
continue;

if (!obj->parsed) {
if (!standalone && has_sha1_file(obj->sha1))
if (has_sha1_file(obj->sha1))
; /* it is in pack */
else
printf("missing %s %s\n",
Expand All @@ -82,7 +81,7 @@ static void check_connectivity(void)
for (j = 0; j < refs->count; j++) {
struct object *ref = refs->ref[j];
if (ref->parsed ||
(!standalone && has_sha1_file(ref->sha1)))
(has_sha1_file(ref->sha1)))
continue;
printf("broken link from %7s %s\n",
obj->type, sha1_to_hex(obj->sha1));
Expand Down Expand Up @@ -390,7 +389,7 @@ static int fsck_handle_ref(const char *refname, const unsigned char *sha1)

obj = lookup_object(sha1);
if (!obj) {
if (!standalone && has_sha1_file(sha1)) {
if (has_sha1_file(sha1)) {
default_refs++;
return 0; /* it is in a pack */
}
Expand Down Expand Up @@ -464,10 +463,6 @@ int main(int argc, char **argv)
keep_cache_objects = 1;
continue;
}
if (!strcmp(arg, "--standalone")) {
standalone = 1;
continue;
}
if (!strcmp(arg, "--full")) {
check_full = 1;
continue;
Expand All @@ -477,14 +472,9 @@ int main(int argc, char **argv)
continue;
}
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_object_dir(get_object_directory());
if (check_full) {
Expand Down

0 comments on commit 7aaa715

Please sign in to comment.