зеркало из https://github.com/microsoft/git.git
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. Ina5031214c4
(slim down "git show-index", 2010-01-21), we even stopped using xmalloc() so that it could avoid libgit.a entirely. But then040a655116
(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 <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
468165c1d8
Коммит
ff417260cf
2
Makefile
2
Makefile
|
@ -642,7 +642,6 @@ PROGRAM_OBJS += http-backend.o
|
||||||
PROGRAM_OBJS += imap-send.o
|
PROGRAM_OBJS += imap-send.o
|
||||||
PROGRAM_OBJS += sh-i18n--envsubst.o
|
PROGRAM_OBJS += sh-i18n--envsubst.o
|
||||||
PROGRAM_OBJS += shell.o
|
PROGRAM_OBJS += shell.o
|
||||||
PROGRAM_OBJS += show-index.o
|
|
||||||
PROGRAM_OBJS += upload-pack.o
|
PROGRAM_OBJS += upload-pack.o
|
||||||
PROGRAM_OBJS += remote-testsvn.o
|
PROGRAM_OBJS += remote-testsvn.o
|
||||||
|
|
||||||
|
@ -1019,6 +1018,7 @@ BUILTIN_OBJS += builtin/rm.o
|
||||||
BUILTIN_OBJS += builtin/send-pack.o
|
BUILTIN_OBJS += builtin/send-pack.o
|
||||||
BUILTIN_OBJS += builtin/shortlog.o
|
BUILTIN_OBJS += builtin/shortlog.o
|
||||||
BUILTIN_OBJS += builtin/show-branch.o
|
BUILTIN_OBJS += builtin/show-branch.o
|
||||||
|
BUILTIN_OBJS += builtin/show-index.o
|
||||||
BUILTIN_OBJS += builtin/show-ref.o
|
BUILTIN_OBJS += builtin/show-ref.o
|
||||||
BUILTIN_OBJS += builtin/stripspace.o
|
BUILTIN_OBJS += builtin/stripspace.o
|
||||||
BUILTIN_OBJS += builtin/submodule--helper.o
|
BUILTIN_OBJS += builtin/submodule--helper.o
|
||||||
|
|
|
@ -218,6 +218,7 @@ extern int cmd_send_pack(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_shortlog(int argc, const char **argv, const char *prefix);
|
extern int cmd_shortlog(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_show(int argc, const char **argv, const char *prefix);
|
extern int cmd_show(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_show_branch(int argc, const char **argv, const char *prefix);
|
extern int cmd_show_branch(int argc, const char **argv, const char *prefix);
|
||||||
|
extern int cmd_show_index(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_status(int argc, const char **argv, const char *prefix);
|
extern int cmd_status(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_stripspace(int argc, const char **argv, const char *prefix);
|
extern int cmd_stripspace(int argc, const char **argv, const char *prefix);
|
||||||
extern int cmd_submodule__helper(int argc, const char **argv, const char *prefix);
|
extern int cmd_submodule__helper(int argc, const char **argv, const char *prefix);
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
|
#include "builtin.h"
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "pack.h"
|
#include "pack.h"
|
||||||
|
|
||||||
static const char show_index_usage[] =
|
static const char show_index_usage[] =
|
||||||
"git show-index";
|
"git show-index";
|
||||||
|
|
||||||
int cmd_main(int argc, const char **argv)
|
int cmd_show_index(int argc, const char **argv, const char *prefix)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned nr;
|
unsigned nr;
|
1
git.c
1
git.c
|
@ -464,6 +464,7 @@ static struct cmd_struct commands[] = {
|
||||||
{ "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
|
{ "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
|
||||||
{ "show", cmd_show, RUN_SETUP },
|
{ "show", cmd_show, RUN_SETUP },
|
||||||
{ "show-branch", cmd_show_branch, RUN_SETUP },
|
{ "show-branch", cmd_show_branch, RUN_SETUP },
|
||||||
|
{ "show-index", cmd_show_index },
|
||||||
{ "show-ref", cmd_show_ref, RUN_SETUP },
|
{ "show-ref", cmd_show_ref, RUN_SETUP },
|
||||||
{ "stage", cmd_add, RUN_SETUP | NEED_WORK_TREE },
|
{ "stage", cmd_add, RUN_SETUP | NEED_WORK_TREE },
|
||||||
{ "status", cmd_status, RUN_SETUP | NEED_WORK_TREE },
|
{ "status", cmd_status, RUN_SETUP | NEED_WORK_TREE },
|
||||||
|
|
Загрузка…
Ссылка в новой задаче