* fsck-object --standalone got errors
@ 2006-03-09 2:35 Ming Lei
2006-03-09 3:17 ` Junio C Hamano
0 siblings, 1 reply; 3+ messages in thread
From: Ming Lei @ 2006-03-09 2:35 UTC (permalink / raw)
To: git
I have a repository created by GIT itself(not cognito, etc). It has
branches called base, master and origin. When I did git-fsck-objects
--full there is nothing shown, but when I did git-fsck-objects
--standalone, it displayed following:
error: refs/heads/master: invalid sha1 pointer
ea51c414519ffe78c5bf95c488e94e82d3603472
error: refs/heads/base: invalid sha1 pointer
4b75aaeb5af2dc69374ad080020758e4de6a45d2
error: refs/heads/origin: invalid sha1 pointer
f4c9503abb2ad52752004e8e9b77b72e23d18d3e
fatal: No default references
The question is:
what's the purpose for this standalone check? what's these errors about?
Do I need to care these errors?
what's the step to ensure my repository always be in a good shape? Is
running fsck-objects --full sufficient?
Thanks
Ming
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: fsck-object --standalone got errors
2006-03-09 2:35 fsck-object --standalone got errors Ming Lei
@ 2006-03-09 3:17 ` Junio C Hamano
2006-03-09 10:37 ` [PATCH] fsck-objects: Remove --standalone Junio C Hamano
0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2006-03-09 3:17 UTC (permalink / raw)
To: Ming Lei; +Cc: git
Ming Lei <mlei@brocade.com> writes:
> I have a repository created by GIT itself(not cognito, etc). It has
> branches called base, master and origin. When I did git-fsck-objects
> --full there is nothing shown, but when I did git-fsck-objects
> --standalone, it displayed following:
That is really an artifact from a distant past. Please do not
worry about that error -- as long as --full does not see
anything long, there is nothing wrong with your repository.
The fsck-object command (back then it was called fsck-cache)
complained if objects referred to by files in .git/refs/ or
objects stored in files under .git/objects/??/ are 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 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. We
probably should remove that flag.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] fsck-objects: Remove --standalone
2006-03-09 3:17 ` Junio C Hamano
@ 2006-03-09 10:37 ` Junio C Hamano
0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2006-03-09 10:37 UTC (permalink / raw)
To: git; +Cc: Ming Lei
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:
23676d407c63a6f67f8ce3ff192199bda03e6a03
8a498a05c3c6b2f53db669b24f36257ab213eb4c
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
* The flag itself is harmless and it still is working as
advertized and documented, but I think it outlived its
usefulness. I do not expect any objections against the
removal but just in case...
Documentation/git-fsck-objects.txt | 15 ++++-----------
fsck-objects.c | 18 ++++--------------
2 files changed, 8 insertions(+), 25 deletions(-)
8f9c5c27d9d5dfe0a5f26646e39ebc48df0eb25c
diff --git a/Documentation/git-fsck-objects.txt b/Documentation/git-fsck-objects.txt
index 387b435..93ce9dc 100644
--- a/Documentation/git-fsck-objects.txt
+++ b/Documentation/git-fsck-objects.txt
@@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git-fsck-objects' [--tags] [--root] [--unreachable] [--cache]
- [--standalone | --full] [--strict] [<object>*]
+ [--full] [--strict] [<object>*]
DESCRIPTION
-----------
@@ -38,21 +38,14 @@ index file and all SHA1 references in .g
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
diff --git a/fsck-objects.c b/fsck-objects.c
index 4ddd676..9cc8572 100644
--- a/fsck-objects.c
+++ b/fsck-objects.c
@@ -14,7 +14,6 @@
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;
@@ -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",
@@ -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));
@@ -390,7 +389,7 @@ static int fsck_handle_ref(const char *r
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 */
}
@@ -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;
@@ -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) {
--
1.2.4.g2acc
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-03-09 10:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-09 2:35 fsck-object --standalone got errors Ming Lei
2006-03-09 3:17 ` Junio C Hamano
2006-03-09 10:37 ` [PATCH] fsck-objects: Remove --standalone Junio C Hamano
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.