Skip to content

Commit ff41726

Browse files
peffgitster
authored andcommitted
make show-index a builtin
The git-show-index command is built as its own separate program. There's really no good reason for this, and it means we waste extra space on disk (and CPU time running the linker). Let's fold it in to the main binary as a builtin. The history here is actually a bit amusing. The program itself is mostly self-contained, and doesn't even use our normal pack index code. In a503121 (slim down "git show-index", 2010-01-21), we even stopped using xmalloc() so that it could avoid libgit.a entirely. But then 040a655 (cleanup: use internal memory allocation wrapper functions everywhere, 2011-10-06) switched that back to xmalloc, which later become ALLOC_ARRAY(). Making it a builtin should give us the best of both worlds: no wasted space and no need to avoid the usual patterns. Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 468165c commit ff41726

File tree

4 files changed

+5
-2
lines changed

4 files changed

+5
-2
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -642,7 +642,6 @@ PROGRAM_OBJS += http-backend.o
642642
PROGRAM_OBJS += imap-send.o
643643
PROGRAM_OBJS += sh-i18n--envsubst.o
644644
PROGRAM_OBJS += shell.o
645-
PROGRAM_OBJS += show-index.o
646645
PROGRAM_OBJS += upload-pack.o
647646
PROGRAM_OBJS += remote-testsvn.o
648647

@@ -1019,6 +1018,7 @@ BUILTIN_OBJS += builtin/rm.o
10191018
BUILTIN_OBJS += builtin/send-pack.o
10201019
BUILTIN_OBJS += builtin/shortlog.o
10211020
BUILTIN_OBJS += builtin/show-branch.o
1021+
BUILTIN_OBJS += builtin/show-index.o
10221022
BUILTIN_OBJS += builtin/show-ref.o
10231023
BUILTIN_OBJS += builtin/stripspace.o
10241024
BUILTIN_OBJS += builtin/submodule--helper.o

builtin.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ extern int cmd_send_pack(int argc, const char **argv, const char *prefix);
218218
extern int cmd_shortlog(int argc, const char **argv, const char *prefix);
219219
extern int cmd_show(int argc, const char **argv, const char *prefix);
220220
extern int cmd_show_branch(int argc, const char **argv, const char *prefix);
221+
extern int cmd_show_index(int argc, const char **argv, const char *prefix);
221222
extern int cmd_status(int argc, const char **argv, const char *prefix);
222223
extern int cmd_stripspace(int argc, const char **argv, const char *prefix);
223224
extern int cmd_submodule__helper(int argc, const char **argv, const char *prefix);

show-index.c renamed to builtin/show-index.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
#include "builtin.h"
12
#include "cache.h"
23
#include "pack.h"
34

45
static const char show_index_usage[] =
56
"git show-index";
67

7-
int cmd_main(int argc, const char **argv)
8+
int cmd_show_index(int argc, const char **argv, const char *prefix)
89
{
910
int i;
1011
unsigned nr;

git.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ static struct cmd_struct commands[] = {
464464
{ "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
465465
{ "show", cmd_show, RUN_SETUP },
466466
{ "show-branch", cmd_show_branch, RUN_SETUP },
467+
{ "show-index", cmd_show_index },
467468
{ "show-ref", cmd_show_ref, RUN_SETUP },
468469
{ "stage", cmd_add, RUN_SETUP | NEED_WORK_TREE },
469470
{ "status", cmd_status, RUN_SETUP | NEED_WORK_TREE },

0 commit comments

Comments
 (0)