aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/git-fsck.txt
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-10-20 11:46:55 -0700
committerJunio C Hamano <gitster@pobox.com>2009-10-20 12:11:39 -0700
commitf29cd3938dbe9300dd75096d8ee2ad6311cc00af (patch)
tree96fb0434a82266bafedc6ecbbb4a55fcd2c354c2 /Documentation/git-fsck.txt
parenta9d7c9552e471b862f73951b2f2e5945f0f051b4 (diff)
downloadgit-f29cd3938dbe9300dd75096d8ee2ad6311cc00af.tar.gz
fsck: default to "git fsck --full"
Linus and other git developers from the early days trained their fingers to type the command, every once in a while even without thinking, to check the consistency of the repository back when the lower core part of the git was still being developed. Developers who wanted to make sure that git correctly dealt with packfiles could deliberately trigger their creation and checked them after they were created carefully, but loose objects are the ones that are written by various commands from random codepaths. It made some technical sense to have a mode that checked only loose objects from the debugging point of view for that reason. Even for git developers, there no longer is any reason to type "git fsck" every five minutes these days, worried that some newly created objects might be corrupt due to recent change to git. The reason we did not make "--full" the default is probably we trust our filesystems a bit too much. At least, we trusted filesystems more than we trusted the lower core part of git that was under development. Once a packfile is created and we always use it read-only, there didn't seem to be much point in suspecting that the underlying filesystems or disks may corrupt them in such a way that is not caught by the SHA-1 checksum over the entire packfile and per object checksum. That trust in the filesystems might have been a good tradeoff between fsck performance and reliability on platforms git was initially developed on and for, but it may not be true anymore as we run on many more platforms these days. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/git-fsck.txt')
-rw-r--r--Documentation/git-fsck.txt5
1 files changed, 3 insertions, 2 deletions
diff --git a/Documentation/git-fsck.txt b/Documentation/git-fsck.txt
index 287c4fc5e0..6fe9484da3 100644
--- a/Documentation/git-fsck.txt
+++ b/Documentation/git-fsck.txt
@@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git fsck' [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
- [--full] [--strict] [--verbose] [--lost-found] [<object>*]
+ [--[no-]full] [--strict] [--verbose] [--lost-found] [<object>*]
DESCRIPTION
-----------
@@ -52,7 +52,8 @@ index file, all SHA1 references in .git/refs/*, and all reflogs (unless
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.
+ object pools. This is now default; you can turn it off
+ with --no-full.
--strict::
Enable more strict checking, namely to catch a file mode