summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rwxr-xr-xDocumentation/cmd-list.perl2
-rw-r--r--Documentation/core-intro.txt2
-rw-r--r--Documentation/everyday.txt4
-rw-r--r--Documentation/git-fsck-objects.txt128
-rw-r--r--Documentation/git-fsck.txt139
-rw-r--r--Documentation/git-pack-redundant.txt2
-rw-r--r--Documentation/git-prune.txt2
-rw-r--r--Makefile3
-rw-r--r--fsck.c (renamed from fsck-objects.c)2
-rwxr-xr-xgit-lost-found.sh2
-rw-r--r--http-fetch.c2
-rwxr-xr-xt/t1410-reflog.sh2
-rwxr-xr-xt/t5500-fetch-pack.sh6
-rwxr-xr-xt/t5710-info-alternate.sh2
15 files changed, 159 insertions, 140 deletions
diff --git a/.gitignore b/.gitignore
index b4dccd7b81..a43444fb92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,6 +42,7 @@ git-findtags
git-fmt-merge-msg
git-for-each-ref
git-format-patch
+git-fsck
git-fsck-objects
git-gc
git-get-tar-commit-id
diff --git a/Documentation/cmd-list.perl b/Documentation/cmd-list.perl
index 824462551f..6dba8d8fe0 100755
--- a/Documentation/cmd-list.perl
+++ b/Documentation/cmd-list.perl
@@ -97,7 +97,7 @@ git-fetch-pack synchingrepositories
git-fmt-merge-msg purehelpers
git-for-each-ref plumbinginterrogators
git-format-patch mainporcelain
-git-fsck-objects ancillaryinterrogators
+git-fsck ancillaryinterrogators
git-gc mainporcelain
git-get-tar-commit-id ancillaryinterrogators
git-grep mainporcelain
diff --git a/Documentation/core-intro.txt b/Documentation/core-intro.txt
index 0458dc3d02..abafefc71c 100644
--- a/Documentation/core-intro.txt
+++ b/Documentation/core-intro.txt
@@ -82,7 +82,7 @@ size> + <byte\0> + <binary object data>.
The structured objects can further have their structure and
connectivity to other objects verified. This is generally done with
-the `git-fsck-objects` program, which generates a full dependency graph
+the `git-fsck` program, which generates a full dependency graph
of all objects, and verifies their internal consistency (in addition
to just verifying their superficial consistency through the hash).
diff --git a/Documentation/everyday.txt b/Documentation/everyday.txt
index fbbbc92b81..08c61b1f1a 100644
--- a/Documentation/everyday.txt
+++ b/Documentation/everyday.txt
@@ -28,7 +28,7 @@ Everybody uses these commands to maintain git repositories.
* gitlink:git-init[1] or gitlink:git-clone[1] to create a
new repository.
- * gitlink:git-fsck-objects[1] to check the repository for errors.
+ * gitlink:git-fsck[1] to check the repository for errors.
* gitlink:git-prune[1] to remove unused objects in the repository.
@@ -43,7 +43,7 @@ Examples
Check health and remove cruft.::
+
------------
-$ git fsck-objects <1>
+$ git fsck <1>
$ git count-objects <2>
$ git repack <3>
$ git gc <4>
diff --git a/Documentation/git-fsck-objects.txt b/Documentation/git-fsck-objects.txt
index d0af99d351..f21061ecfe 100644
--- a/Documentation/git-fsck-objects.txt
+++ b/Documentation/git-fsck-objects.txt
@@ -8,132 +8,10 @@ git-fsck-objects - Verifies the connectivity and validity of the objects in the
SYNOPSIS
--------
-[verse]
-'git-fsck-objects' [--tags] [--root] [--unreachable] [--cache]
- [--full] [--strict] [<object>*]
+'git-fsck-objects' ...
DESCRIPTION
-----------
-Verifies the connectivity and validity of the objects in the database.
-
-OPTIONS
--------
-<object>::
- An object to treat as the head of an unreachability trace.
-+
-If no objects are given, git-fsck-objects defaults to using the
-index file and all SHA1 references in .git/refs/* as heads.
-
---unreachable::
- Print out objects that exist but that aren't readable from any
- of the reference nodes.
-
---root::
- Report root nodes.
-
---tags::
- Report tags.
-
---cache::
- Consider any object recorded in the index also as a head node for
- an unreachability trace.
-
---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
- 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.
-
---strict::
- Enable more strict checking, namely to catch a file mode
- recorded with g+w bit set, which was created by older
- versions of git. Existing repositories, including the
- Linux kernel, git itself, and sparse repository have old
- objects that triggers this check, but it is recommended
- to check new projects with this flag.
-
-It tests SHA1 and general object sanity, and it does full tracking of
-the resulting reachability and everything else. It prints out any
-corruption it finds (missing or bad objects), and if you use the
-'--unreachable' flag it will also print out objects that exist but
-that aren't readable from any of the specified head nodes.
-
-So for example
-
- git-fsck-objects --unreachable HEAD $(cat .git/refs/heads/*)
-
-will do quite a _lot_ of verification on the tree. There are a few
-extra validity tests to be added (make sure that tree objects are
-sorted properly etc), but on the whole if "git-fsck-objects" is happy, you
-do have a valid tree.
-
-Any corrupt objects you will have to find in backups or other archives
-(i.e., you can just remove them and do an "rsync" with some other site in
-the hopes that somebody else has the object you have corrupted).
-
-Of course, "valid tree" doesn't mean that it wasn't generated by some
-evil person, and the end result might be crap. git is a revision
-tracking system, not a quality assurance system ;)
-
-Extracted Diagnostics
----------------------
-
-expect dangling commits - potential heads - due to lack of head information::
- You haven't specified any nodes as heads so it won't be
- possible to differentiate between un-parented commits and
- root nodes.
-
-missing sha1 directory '<dir>'::
- The directory holding the sha1 objects is missing.
-
-unreachable <type> <object>::
- The <type> object <object>, isn't actually referred to directly
- or indirectly in any of the trees or commits seen. This can
- mean that there's another root node that you're not specifying
- or that the tree is corrupt. If you haven't missed a root node
- then you might as well delete unreachable nodes since they
- can't be used.
-
-missing <type> <object>::
- The <type> object <object>, is referred to but isn't present in
- the database.
-
-dangling <type> <object>::
- The <type> object <object>, is present in the database but never
- 'directly' used. A dangling commit could be a root node.
-
-warning: git-fsck-objects: tree <tree> has full pathnames in it::
- And it shouldn't...
-
-sha1 mismatch <object>::
- The database has an object who's sha1 doesn't match the
- database value.
- This indicates a serious data integrity problem.
-
-Environment Variables
----------------------
-
-GIT_OBJECT_DIRECTORY::
- used to specify the object database root (usually $GIT_DIR/objects)
-
-GIT_INDEX_FILE::
- used to specify the index file of the index
-
-GIT_ALTERNATE_OBJECT_DIRECTORIES::
- used to specify additional object database roots (usually unset)
-
-Author
-------
-Written by Linus Torvalds <torvalds@osdl.org>
-
-Documentation
---------------
-Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
-
-GIT
----
-Part of the gitlink:git[7] suite
+This is a synonym for gitlink:git-fsck[1]. Please refer to the
+documentation of that command.
diff --git a/Documentation/git-fsck.txt b/Documentation/git-fsck.txt
new file mode 100644
index 0000000000..058009d2fa
--- /dev/null
+++ b/Documentation/git-fsck.txt
@@ -0,0 +1,139 @@
+git-fsck(1)
+===========
+
+NAME
+----
+git-fsck - Verifies the connectivity and validity of the objects in the database
+
+
+SYNOPSIS
+--------
+[verse]
+'git-fsck' [--tags] [--root] [--unreachable] [--cache]
+ [--full] [--strict] [<object>*]
+
+DESCRIPTION
+-----------
+Verifies the connectivity and validity of the objects in the database.
+
+OPTIONS
+-------
+<object>::
+ An object to treat as the head of an unreachability trace.
++
+If no objects are given, git-fsck defaults to using the
+index file and all SHA1 references in .git/refs/* as heads.
+
+--unreachable::
+ Print out objects that exist but that aren't readable from any
+ of the reference nodes.
+
+--root::
+ Report root nodes.
+
+--tags::
+ Report tags.
+
+--cache::
+ Consider any object recorded in the index also as a head node for
+ an unreachability trace.
+
+--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
+ 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.
+
+--strict::
+ Enable more strict checking, namely to catch a file mode
+ recorded with g+w bit set, which was created by older
+ versions of git. Existing repositories, including the
+ Linux kernel, git itself, and sparse repository have old
+ objects that triggers this check, but it is recommended
+ to check new projects with this flag.
+
+It tests SHA1 and general object sanity, and it does full tracking of
+the resulting reachability and everything else. It prints out any
+corruption it finds (missing or bad objects), and if you use the
+'--unreachable' flag it will also print out objects that exist but
+that aren't readable from any of the specified head nodes.
+
+So for example
+
+ git-fsck --unreachable HEAD $(cat .git/refs/heads/*)
+
+will do quite a _lot_ of verification on the tree. There are a few
+extra validity tests to be added (make sure that tree objects are
+sorted properly etc), but on the whole if "git-fsck" is happy, you
+do have a valid tree.
+
+Any corrupt objects you will have to find in backups or other archives
+(i.e., you can just remove them and do an "rsync" with some other site in
+the hopes that somebody else has the object you have corrupted).
+
+Of course, "valid tree" doesn't mean that it wasn't generated by some
+evil person, and the end result might be crap. git is a revision
+tracking system, not a quality assurance system ;)
+
+Extracted Diagnostics
+---------------------
+
+expect dangling commits - potential heads - due to lack of head information::
+ You haven't specified any nodes as heads so it won't be
+ possible to differentiate between un-parented commits and
+ root nodes.
+
+missing sha1 directory '<dir>'::
+ The directory holding the sha1 objects is missing.
+
+unreachable <type> <object>::
+ The <type> object <object>, isn't actually referred to directly
+ or indirectly in any of the trees or commits seen. This can
+ mean that there's another root node that you're not specifying
+ or that the tree is corrupt. If you haven't missed a root node
+ then you might as well delete unreachable nodes since they
+ can't be used.
+
+missing <type> <object>::
+ The <type> object <object>, is referred to but isn't present in
+ the database.
+
+dangling <type> <object>::
+ The <type> object <object>, is present in the database but never
+ 'directly' used. A dangling commit could be a root node.
+
+warning: git-fsck: tree <tree> has full pathnames in it::
+ And it shouldn't...
+
+sha1 mismatch <object>::
+ The database has an object who's sha1 doesn't match the
+ database value.
+ This indicates a serious data integrity problem.
+
+Environment Variables
+---------------------
+
+GIT_OBJECT_DIRECTORY::
+ used to specify the object database root (usually $GIT_DIR/objects)
+
+GIT_INDEX_FILE::
+ used to specify the index file of the index
+
+GIT_ALTERNATE_OBJECT_DIRECTORIES::
+ used to specify additional object database roots (usually unset)
+
+Author
+------
+Written by Linus Torvalds <torvalds@osdl.org>
+
+Documentation
+--------------
+Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
diff --git a/Documentation/git-pack-redundant.txt b/Documentation/git-pack-redundant.txt
index be2c64eb57..94bbea0db2 100644
--- a/Documentation/git-pack-redundant.txt
+++ b/Documentation/git-pack-redundant.txt
@@ -21,7 +21,7 @@ given will be ignored when checking which packs are required. This makes the
following command useful when wanting to remove packs which contain unreachable
objects.
-git-fsck-objects --full --unreachable | cut -d ' ' -f3 | \
+git-fsck --full --unreachable | cut -d ' ' -f3 | \
git-pack-redundant --all | xargs rm
OPTIONS
diff --git a/Documentation/git-prune.txt b/Documentation/git-prune.txt
index a11e303094..0b44f3015d 100644
--- a/Documentation/git-prune.txt
+++ b/Documentation/git-prune.txt
@@ -13,7 +13,7 @@ SYNOPSIS
DESCRIPTION
-----------
-This runs `git-fsck-objects --unreachable` using all the refs
+This runs `git-fsck --unreachable` using all the refs
available in `$GIT_DIR/refs`, optionally with additional set of
objects specified on the command line, and prunes all
objects unreachable from any of these head objects from the object database.
diff --git a/Makefile b/Makefile
index fd8a522efa..1552b2a530 100644
--- a/Makefile
+++ b/Makefile
@@ -192,7 +192,7 @@ SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
# ... and all the rest that could be moved out of bindir to gitexecdir
PROGRAMS = \
- git-convert-objects$X git-fetch-pack$X git-fsck-objects$X \
+ git-convert-objects$X git-fetch-pack$X git-fsck$X \
git-hash-object$X git-index-pack$X git-local-fetch$X \
git-merge-base$X \
git-daemon$X \
@@ -214,6 +214,7 @@ EXTRA_PROGRAMS =
BUILT_INS = \
git-format-patch$X git-show$X git-whatchanged$X git-cherry$X \
git-get-tar-commit-id$X git-init$X git-repo-config$X \
+ git-fsck-objects$X \
$(patsubst builtin-%.o,git-%$X,$(BUILTIN_OBJS))
# what 'all' will build and 'install' will install, in gitexecdir
diff --git a/fsck-objects.c b/fsck.c
index ecfb014fff..558f0a6b34 100644
--- a/fsck-objects.c
+++ b/fsck.c
@@ -606,7 +606,7 @@ int main(int argc, char **argv)
continue;
}
if (*arg == '-')
- usage("git-fsck-objects [--tags] [--root] [[--unreachable] [--cache] [--full] [--strict] <head-sha1>*]");
+ usage("git-fsck [--tags] [--root] [[--unreachable] [--cache] [--full] [--strict] <head-sha1>*]");
}
fsck_head_link();
diff --git a/git-lost-found.sh b/git-lost-found.sh
index b928f2ca52..9360804711 100755
--- a/git-lost-found.sh
+++ b/git-lost-found.sh
@@ -12,7 +12,7 @@ fi
laf="$GIT_DIR/lost-found"
rm -fr "$laf" && mkdir -p "$laf/commit" "$laf/other" || exit
-git fsck-objects --full |
+git fsck --full |
while read dangling type sha1
do
case "$dangling" in
diff --git a/http-fetch.c b/http-fetch.c
index efd494a47f..9f790a08e5 100644
--- a/http-fetch.c
+++ b/http-fetch.c
@@ -1069,7 +1069,7 @@ int main(int argc, const char **argv)
fprintf(stderr,
"Some loose object were found to be corrupt, but they might be just\n"
"a false '404 Not Found' error message sent with incorrect HTTP\n"
-"status code. Suggest running git fsck-objects.\n");
+"status code. Suggest running git-fsck.\n");
}
return rc;
}
diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
index 47d124732c..e5bbc384f7 100755
--- a/t/t1410-reflog.sh
+++ b/t/t1410-reflog.sh
@@ -20,7 +20,7 @@ check_have () {
}
check_fsck () {
- output=$(git fsck-objects --full)
+ output=$(git fsck --full)
case "$1" in
'')
test -z "$output" ;;
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index e35d60fa3a..48e3d1705f 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -63,13 +63,13 @@ pull_to_client () {
case "$heads" in *B*) echo $BTIP > .git/refs/heads/B;; esac
git-symbolic-ref HEAD refs/heads/`echo $heads | sed -e 's/^\(.\).*$/\1/'`
- test_expect_success "fsck" 'git-fsck-objects --full > fsck.txt 2>&1'
+ test_expect_success "fsck" 'git-fsck --full > fsck.txt 2>&1'
test_expect_success 'check downloaded results' \
'mv .git/objects/pack/pack-* . &&
p=`ls -1 pack-*.pack` &&
git-unpack-objects <$p &&
- git-fsck-objects --full'
+ git-fsck --full'
test_expect_success "new object count after $number pull" \
'idx=`echo pack-*.idx` &&
@@ -145,7 +145,7 @@ test_expect_success "clone shallow object count (part 2)" '
'
test_expect_success "fsck in shallow repo" \
- "(cd shallow; git-fsck-objects --full)"
+ "(cd shallow; git-fsck --full)"
#test_done; exit
diff --git a/t/t5710-info-alternate.sh b/t/t5710-info-alternate.sh
index b9f6d96363..2f8e97cb7e 100755
--- a/t/t5710-info-alternate.sh
+++ b/t/t5710-info-alternate.sh
@@ -17,7 +17,7 @@ reachable_via() {
}
test_valid_repo() {
- git fsck-objects --full > fsck.log &&
+ git fsck --full > fsck.log &&
test `wc -l < fsck.log` = 0
}