git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Make fsck and fsck-objects be builtins.

From
MWMark Wooding <mdw@distorted.org.uk>
Date
Jan 29, 2007, 15:48 UTC
Message-ID
<slrners5pm.3l6.mdw@metalzone.distorted.org.uk>
In-Reply-To
<7vsldubqof.fsf@assigned-by-dhcp.cox.net>

The earlier change df391b192 to rename fsck-objects to fsck broke fsck-objects. This should fix it again.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
---
 Makefile                 |    1 +
 fsck.c => builtin-fsck.c |    3 +--
 builtin.h                |    1 +
 git.c                    |    2 ++
 4 files changed, 5 insertions(+), 2 deletions(-)
 rename fsck.c => builtin-fsck.c (100%)
Without this, I get 

[metalzone ~/src/git]git fsck-objects fatal: cannot handle fsck-objects internally

which isn't really very helpful. I thought about hacking the makefile to manufacture a hardlink from git-fsck-objects, but this just seemed so much easier. And we are slowly accumulating builtins, right? ;-)

diff --git a/Makefile b/Makefile
index 1552b2a..91bd665 100644
--- a/Makefile
+++ b/Makefile
@@ -284,6 +284,7 @@ BUILTIN_OBJS = \
 	builtin-diff-tree.o \
 	builtin-fmt-merge-msg.o \
 	builtin-for-each-ref.o \
+	builtin-fsck.o \
 	builtin-grep.o \
 	builtin-init-db.o \
 	builtin-log.o \
diff --git a/fsck.c b/builtin-fsck.c
similarity index 100%
rename from fsck.c
rename to builtin-fsck.c
index 558f0a6..fec1cbd 100644
--- a/fsck.c
+++ b/builtin-fsck.c
@@ -571,12 +571,11 @@ static int fsck_cache_tree(struct cache_tree *it)
 	return err;
 }
 
-int main(int argc, char **argv)
+int cmd_fsck(int argc, char **argv, const char *prefix)
 {
 	int i, heads;
 
 	track_object_refs = 1;
-	setup_git_directory();
 
 	for (i = 1; i < argc; i++) {
 		const char *arg = argv[i];
diff --git a/builtin.h b/builtin.h
index cfe5990..dd0e352 100644
--- a/builtin.h
+++ b/builtin.h
@@ -34,6 +34,7 @@ extern int cmd_diff_tree(int argc, const char **argv, const char *prefix);
 extern int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix);
 extern int cmd_for_each_ref(int argc, const char **argv, const char *prefix);
 extern int cmd_format_patch(int argc, const char **argv, const char *prefix);
+extern int cmd_fsck(int argc, const char **argv, const char *prefix);
 extern int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix);
 extern int cmd_grep(int argc, const char **argv, const char *prefix);
 extern int cmd_help(int argc, const char **argv, const char *prefix);
diff --git a/git.c b/git.c
index d21e5e5..fb03a54 100644
--- a/git.c
+++ b/git.c
@@ -235,6 +235,8 @@ static void handle_internal_command(int argc, const char **argv, char **envp)
 		{ "fmt-merge-msg", cmd_fmt_merge_msg, RUN_SETUP },
 		{ "for-each-ref", cmd_for_each_ref, RUN_SETUP },
 		{ "format-patch", cmd_format_patch, RUN_SETUP },
+		{ "fsck", cmd_fsck, RUN_SETUP },
+		{ "fsck-objects", cmd_fsck, RUN_SETUP },
 		{ "get-tar-commit-id", cmd_get_tar_commit_id },
 		{ "grep", cmd_grep, RUN_SETUP },
 		{ "help", cmd_help },
-- 
1.5.0.rc2.75.gdbaa0-dirty

-- [mdw]
Previous: Junio C HamanoNext: Junio C Hamano
Message 16 of 18 in “git user's manual”
  1. J. Bruce FieldsJan 27, 2007
  2. user-manual: set user.name and user.email with repo-configMatthias Lederhofer, Jan 28, 2007
  3. Linus TorvaldsJan 28, 2007
  4. Matthias LederhoferJan 28, 2007
  5. Linus TorvaldsJan 28, 2007
  6. Junio C HamanoJan 28, 2007
  7. Jakub NarebskiJan 28, 2007
  8. Tom PrinceJan 28, 2007
  9. Junio C HamanoJan 28, 2007
  10. Junio C HamanoJan 28, 2007
  11. Nicolas PitreJan 28, 2007
  12. Jakub NarebskiJan 28, 2007
  13. J. Bruce FieldsJan 28, 2007
  14. Linus TorvaldsJan 28, 2007
  15. Junio C HamanoJan 29, 2007
  16. Make fsck and fsck-objects be builtins.Mark Wooding, Jan 29, 2007
  17. Junio C HamanoJan 29, 2007
  18. J. Bruce FieldsJan 29, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.