git-commit-vandalism/builtin
Jeff King ff417260cf 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 a5031214c4 (slim down "git
show-index", 2010-01-21), we even stopped using xmalloc() so
that it could avoid libgit.a entirely. But then 040a655116
(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>
2018-05-29 00:28:22 +09:00
..
add.c Merge branch 'ma/skip-writing-unchanged-index' 2018-03-21 11:30:10 -07:00
am.c Merge branch 'nd/rebase-show-current-patch' 2018-03-06 14:54:02 -08:00
annotate.c
apply.c apply: move lockfile into apply_state 2017-10-06 10:07:18 +09:00
archive.c correct error messages for NULL packet_read_line() 2018-02-08 12:37:30 -08:00
bisect--helper.c bisect: mention "view" as an alternative to "visualize" 2017-11-13 10:51:14 +09:00
blame.c blame: tighten command line parser 2018-02-07 12:41:36 -08:00
branch.c completion: use __gitcomp_builtin in _git_branch 2018-02-09 10:24:50 -08:00
bundle.c
cat-file.c Merge branch 'bw/c-plus-plus' 2018-03-06 14:54:07 -08:00
check-attr.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
check-ignore.c check-ignore: fix mix of directories and other file types 2018-02-12 13:09:35 -08:00
check-mailmap.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
check-ref-format.c Merge branch 'jc/check-ref-format-oor' into maint 2017-11-15 12:04:57 +09:00
checkout-index.c parse-options: let OPT__FORCE take optional flags argument 2018-02-09 10:24:50 -08:00
checkout.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
clean.c completion: use __gitcomp_builtin in _git_clean 2018-02-09 10:24:50 -08:00
clone.c Merge branch 'jk/abort-clone-with-existing-dest' into maint 2018-02-15 15:18:13 -08:00
column.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
commit-tree.c commit: convert commit_tree* to object_id 2018-01-30 10:42:36 -08:00
commit.c Merge branch 'ma/skip-writing-unchanged-index' 2018-03-21 11:30:10 -07:00
config.c config: change default of pager.config to "on" 2018-02-21 14:27:30 -08:00
count-objects.c pack: move open_pack_index(), parse_pack_index() 2017-08-23 15:12:06 -07:00
credential.c
describe.c Merge branch 'sb/describe-blob' 2018-02-27 10:33:57 -08:00
diff-files.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
diff-index.c Merge branch 'ma/builtin-unleak' 2017-10-07 16:27:55 +09:00
diff-tree.c object: rename function 'typename' to 'type_name' 2018-02-14 13:10:05 -08:00
diff.c Switch empty tree and blob lookups to use hash abstraction 2017-11-13 13:20:44 +09:00
difftool.c read-cache: leave lock in right state in write_locked_index() 2017-10-07 10:20:56 +09:00
fast-export.c object: rename function 'typename' to 'type_name' 2018-02-14 13:10:05 -08:00
fetch-pack.c fetch: inherit filter-spec from partial clone 2017-12-08 09:58:52 -08:00
fetch.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
fmt-merge-msg.c Merge branch 'rs/fmt-merge-msg-string-leak-fix' 2017-12-27 11:16:23 -08:00
for-each-ref.c provide --color option for all ref-filter users 2017-10-04 11:35:29 +09:00
fsck.c Merge branch 'bw/c-plus-plus' 2018-03-06 14:54:07 -08:00
gc.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
get-tar-commit-id.c distinguish error versus short read from read_in_full() 2017-09-27 15:45:24 +09:00
grep.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
hash-object.c sha1_file: rename hash_sha1_file_literally 2018-01-30 10:42:36 -08:00
help.c help: rename 'new' variables 2018-02-22 10:08:05 -08:00
index-pack.c index-pack: support checking objects but not links 2018-03-15 10:16:24 -07:00
init-db.c init-db: rename 'template' variables 2018-02-22 10:08:05 -08:00
interpret-trailers.c Merge branch 'jk/trailers-parse' 2017-08-26 22:55:04 -07:00
log.c format-patch: reduce patch diffstat width to 72 2018-02-02 10:40:34 -08:00
ls-files.c Merge branch 'bp/fsmonitor' 2017-11-21 14:07:50 +09:00
ls-remote.c completion: use __gitcomp_builtin in _git_ls_remote 2018-02-09 10:24:51 -08:00
ls-tree.c Merge branch 'bw/config-h' 2017-06-24 14:28:41 -07:00
mailinfo.c
mailsplit.c
merge-base.c Merge branch 'ma/reduce-heads-leakfix' 2017-11-15 12:14:32 +09:00
merge-file.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
merge-index.c
merge-ours.c Merge branch 'bw/diff-opt-impl-to-bitfields' 2017-11-09 14:31:27 +09:00
merge-recursive.c
merge-tree.c tree-walk: convert fill_tree_descriptor() to object_id 2017-08-14 12:38:54 -07:00
merge.c Merge branch 'ma/skip-writing-unchanged-index' 2018-03-21 11:30:10 -07:00
mktag.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
mktree.c Merge branch 'bw/c-plus-plus' 2018-03-06 14:54:07 -08:00
mv.c Merge branch 'ma/skip-writing-unchanged-index' 2018-03-21 11:30:10 -07:00
name-rev.c Merge branch 'mg/timestamp-t-fix' into maint 2017-10-18 14:19:09 +09:00
notes.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
pack-objects.c Merge branch 'nd/object-allocation-comments' 2018-03-14 12:01:06 -07:00
pack-redundant.c pack-redundant: rename 'new' variables 2018-02-22 10:08:05 -08:00
pack-refs.c
patch-id.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
prune-packed.c Merge branch 'jt/packmigrate' 2017-08-26 22:55:09 -07:00
prune.c Merge branch 'bw/c-plus-plus' 2018-03-06 14:54:07 -08:00
pull.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
push.c completion: use __gitcomp_builtin in _git_push 2018-02-09 10:24:52 -08:00
read-tree.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
rebase--helper.c Merge branch 'gs/rebase-allow-empty-message' 2018-02-21 12:45:04 -08:00
receive-pack.c sha1_file: convert write_sha1_file to object_id 2018-01-30 10:42:36 -08:00
reflog.c Merge branch 'nd/object-allocation-comments' 2018-03-14 12:01:06 -07:00
remote-ext.c consistently use "fallthrough" comments in switches 2017-09-22 12:49:57 +09:00
remote-fd.c
remote.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
repack.c gc: do not repack promisor packfiles 2017-12-08 09:52:42 -08:00
replace.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
rerere.c avoid "write_in_full(fd, buf, len) != len" pattern 2017-09-14 15:17:59 +09:00
reset.c Merge branch 'tg/reset-hard-show-head-with-pretty' 2018-02-15 14:55:45 -08:00
rev-list.c Merge branch 'rj/warning-uninitialized-fix' 2018-03-21 11:30:15 -07:00
rev-parse.c Merge branch 'bw/c-plus-plus' 2018-03-06 14:54:07 -08:00
revert.c sequencer: improve config handling 2017-12-13 11:15:14 -08:00
rm.c Merge branch 'ma/skip-writing-unchanged-index' 2018-03-21 11:30:10 -07:00
send-pack.c Merge branch 'ma/parse-maybe-bool' 2017-08-22 10:29:03 -07:00
shortlog.c shortlog: skip format/parse roundtrip for internal traversal 2017-09-09 01:57:03 +09:00
show-branch.c Merge branch 'ot/pretty' 2017-12-27 11:16:29 -08:00
show-index.c make show-index a builtin 2018-05-29 00:28:22 +09:00
show-ref.c refs: convert peel_ref to struct object_id 2017-10-16 11:05:51 +09:00
stripspace.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
submodule--helper.c Merge branch 'pc/submodule-helper' 2018-03-28 11:04:25 -07:00
symbolic-ref.c refs: rename constant REF_NODEREF to REF_NO_DEREF 2017-11-06 10:31:08 +09:00
tag.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
unpack-file.c Merge branch 'jk/write-in-full-fix' 2017-09-25 15:24:06 +09:00
unpack-objects.c Merge branch 'nd/object-allocation-comments' 2018-03-14 12:01:06 -07:00
update-index.c Merge branch 'bp/fsmonitor' 2017-11-21 14:07:50 +09:00
update-ref.c refs: rename constant REF_NODEREF to REF_NO_DEREF 2017-11-06 10:31:08 +09:00
update-server-info.c parse-options: let OPT__FORCE take optional flags argument 2018-02-09 10:24:50 -08:00
upload-archive.c
var.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
verify-commit.c object: rename function 'typename' to 'type_name' 2018-02-14 13:10:05 -08:00
verify-pack.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
verify-tag.c Merge branch 'jk/ref-filter-colors' 2017-08-11 13:26:58 -07:00
worktree.c Merge branch 'nd/parseopt-completion' 2018-03-14 12:01:07 -07:00
write-tree.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00