]> git.ipfire.org Git - thirdparty/git.git/commitdiff
make git-fast-import a builtin
authorJeff King <peff@peff.net>
Thu, 13 Aug 2020 14:59:45 +0000 (10:59 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 13 Aug 2020 18:02:13 +0000 (11:02 -0700)
There's no reason that git-fast-import benefits from being a separate
binary. And as it links against libgit.a, it has a non-trivial disk
footprint. Let's make it a builtin, which reduces the size of a stripped
installation from 22MB to 21MB.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
builtin.h
builtin/fast-import.c [moved from fast-import.c with 99% similarity]
contrib/buildsystems/CMakeLists.txt
git.c

index acaff6968b9b724fd5126759e1e7652eaee80513..2b821fc7625918fb1c04c5fdf24fa7a322f55ea2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -672,7 +672,6 @@ EXTRA_PROGRAMS =
 PROGRAMS += $(EXTRA_PROGRAMS)
 
 PROGRAM_OBJS += daemon.o
-PROGRAM_OBJS += fast-import.o
 PROGRAM_OBJS += http-backend.o
 PROGRAM_OBJS += imap-send.o
 PROGRAM_OBJS += remote-testsvn.o
@@ -1069,6 +1068,7 @@ BUILTIN_OBJS += builtin/diff.o
 BUILTIN_OBJS += builtin/difftool.o
 BUILTIN_OBJS += builtin/env--helper.o
 BUILTIN_OBJS += builtin/fast-export.o
+BUILTIN_OBJS += builtin/fast-import.o
 BUILTIN_OBJS += builtin/fetch-pack.o
 BUILTIN_OBJS += builtin/fetch.o
 BUILTIN_OBJS += builtin/fmt-merge-msg.o
@@ -2897,7 +2897,6 @@ ifdef MSVC
        $(INSTALL) git.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
        $(INSTALL) git-shell.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
        $(INSTALL) git-daemon.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
-       $(INSTALL) git-fast-import.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
        $(INSTALL) git-http-backend.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
        $(INSTALL) git-http-fetch.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
        $(INSTALL) git-http-push.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
index 1e78d6c1425e0527f61c634bbb3bec9a52966f85..ba954e180c56a3543e73f181a086b494cba88c38 100644 (file)
--- a/builtin.h
+++ b/builtin.h
@@ -150,6 +150,7 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix);
 int cmd_difftool(int argc, const char **argv, const char *prefix);
 int cmd_env__helper(int argc, const char **argv, const char *prefix);
 int cmd_fast_export(int argc, const char **argv, const char *prefix);
+int cmd_fast_import(int argc, const char **argv, const char *prefix);
 int cmd_fetch(int argc, const char **argv, const char *prefix);
 int cmd_fetch_pack(int argc, const char **argv, const char *prefix);
 int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix);
similarity index 99%
rename from fast-import.c
rename to builtin/fast-import.c
index ce47794db63d6d4bdbc0e479b16013273563efe7..8cc5d09c6444ba4046a7d16cdbfcb764e34e4640 100644 (file)
@@ -3519,14 +3519,13 @@ static void parse_argv(void)
        build_mark_map(&sub_marks_from, &sub_marks_to);
 }
 
-int cmd_main(int argc, const char **argv)
+int cmd_fast_import(int argc, const char **argv, const char *prefix)
 {
        unsigned int i;
 
        if (argc == 2 && !strcmp(argv[1], "-h"))
                usage(fast_import_usage);
 
-       setup_git_directory();
        reset_pack_idx_option(&pack_idx_opts);
        git_pack_config();
 
index 3e211606fd3d0d8bd957aea9b91e76a5fb0b2a9d..4a6f135b1645a41ed30dd8ff955690c1c8f2bf22 100644 (file)
@@ -501,7 +501,7 @@ unset(CMAKE_REQUIRED_INCLUDES)
 
 #programs
 set(PROGRAMS_BUILT
-       git git-daemon git-fast-import git-http-backend git-sh-i18n--envsubst
+       git git-daemon git-http-backend git-sh-i18n--envsubst
        git-shell git-remote-testsvn)
 
 if(NOT CURL_FOUND)
@@ -627,9 +627,6 @@ target_link_libraries(git common-main)
 add_executable(git-daemon ${CMAKE_SOURCE_DIR}/daemon.c)
 target_link_libraries(git-daemon common-main)
 
-add_executable(git-fast-import ${CMAKE_SOURCE_DIR}/fast-import.c)
-target_link_libraries(git-fast-import common-main)
-
 add_executable(git-http-backend ${CMAKE_SOURCE_DIR}/http-backend.c)
 target_link_libraries(git-http-backend common-main)
 
diff --git a/git.c b/git.c
index bf790e7f4fe2987a29fd0933599b031156019e7c..01c456edce923cd895a95a83ac211b6a5e5a3e0c 100644 (file)
--- a/git.c
+++ b/git.c
@@ -511,6 +511,7 @@ static struct cmd_struct commands[] = {
        { "difftool", cmd_difftool, RUN_SETUP_GENTLY },
        { "env--helper", cmd_env__helper },
        { "fast-export", cmd_fast_export, RUN_SETUP },
+       { "fast-import", cmd_fast_import, RUN_SETUP | NO_PARSEOPT },
        { "fetch", cmd_fetch, RUN_SETUP },
        { "fetch-pack", cmd_fetch_pack, RUN_SETUP | NO_PARSEOPT },
        { "fmt-merge-msg", cmd_fmt_merge_msg, RUN_SETUP },