diff --git a/Makefile b/Makefile index 60ab1a8b4f..e440728c24 100644 --- a/Makefile +++ b/Makefile @@ -1032,6 +1032,7 @@ LIB_OBJS += fsmonitor.o LIB_OBJS += fsmonitor-ipc.o LIB_OBJS += fsmonitor-settings.o LIB_OBJS += gettext.o +LIB_OBJS += git-zlib.o LIB_OBJS += gpg-interface.o LIB_OBJS += graph.o LIB_OBJS += grep.o @@ -1192,7 +1193,6 @@ LIB_OBJS += write-or-die.o LIB_OBJS += ws.o LIB_OBJS += wt-status.o LIB_OBJS += xdiff-interface.o -LIB_OBJS += zlib.o BUILTIN_OBJS += builtin/add.o BUILTIN_OBJS += builtin/am.o diff --git a/add-patch.c b/add-patch.c index 1e1ee2df59..8d770d203f 100644 --- a/add-patch.c +++ b/add-patch.c @@ -1,8 +1,11 @@ #include "cache.h" #include "add-interactive.h" +#include "advice.h" #include "alloc.h" +#include "editor.h" #include "environment.h" #include "gettext.h" +#include "object-name.h" #include "strbuf.h" #include "run-command.h" #include "strvec.h" diff --git a/apply.c b/apply.c index e2d55eadfa..3636bc14c2 100644 --- a/apply.c +++ b/apply.c @@ -22,6 +22,8 @@ #include "xdiff-interface.h" #include "ll-merge.h" #include "lockfile.h" +#include "object-name.h" +#include "object-file.h" #include "parse-options.h" #include "quote.h" #include "rerere.h" diff --git a/archive-tar.c b/archive-tar.c index 497dad0b3a..4cd81d8161 100644 --- a/archive-tar.c +++ b/archive-tar.c @@ -5,6 +5,7 @@ #include "alloc.h" #include "config.h" #include "gettext.h" +#include "git-zlib.h" #include "hex.h" #include "tar.h" #include "archive.h" diff --git a/archive-zip.c b/archive-zip.c index e6f5c10a14..ef538a90df 100644 --- a/archive-zip.c +++ b/archive-zip.c @@ -5,6 +5,7 @@ #include "config.h" #include "archive.h" #include "gettext.h" +#include "git-zlib.h" #include "hex.h" #include "streaming.h" #include "utf8.h" diff --git a/archive.c b/archive.c index d2d1b4eb42..8570cf37ff 100644 --- a/archive.c +++ b/archive.c @@ -2,6 +2,7 @@ #include "abspath.h" #include "alloc.h" #include "config.h" +#include "convert.h" #include "environment.h" #include "gettext.h" #include "hex.h" diff --git a/archive.h b/archive.h index 7178e2a9a2..3a4bdfbd07 100644 --- a/archive.h +++ b/archive.h @@ -1,8 +1,9 @@ #ifndef ARCHIVE_H #define ARCHIVE_H -#include "cache.h" +#include "object-name.h" #include "pathspec.h" +#include "string-list.h" struct repository; struct pretty_print_context; diff --git a/bisect.c b/bisect.c index 0a5f2ed354..8d5f8e5885 100644 --- a/bisect.c +++ b/bisect.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "commit.h" #include "diff.h" @@ -17,6 +17,7 @@ #include "strvec.h" #include "commit-slab.h" #include "commit-reach.h" +#include "object-name.h" #include "object-store.h" #include "dir.h" diff --git a/blame.c b/blame.c index 2c427bcdbf..58dd58b6c9 100644 --- a/blame.c +++ b/blame.c @@ -3,12 +3,14 @@ #include "object-store.h" #include "cache-tree.h" #include "mergesort.h" +#include "convert.h" #include "diff.h" #include "diffcore.h" #include "gettext.h" #include "hex.h" #include "setup.h" #include "tag.h" +#include "trace2.h" #include "blame.h" #include "alloc.h" #include "commit-slab.h" diff --git a/branch.c b/branch.c index 99a0e7889e..7df982693a 100644 --- a/branch.c +++ b/branch.c @@ -1,10 +1,11 @@ #include "git-compat-util.h" -#include "cache.h" +#include "advice.h" #include "config.h" #include "branch.h" #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "refs.h" #include "refspec.h" #include "remote.h" diff --git a/builtin/add.c b/builtin/add.c index f12054d9be..76cc026a68 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -5,9 +5,11 @@ */ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "advice.h" #include "config.h" #include "builtin.h" #include "lockfile.h" +#include "editor.h" #include "dir.h" #include "gettext.h" #include "pathspec.h" diff --git a/builtin/am.c b/builtin/am.c index cd1e20f24e..5c83f2e003 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -6,8 +6,10 @@ #define USE_THE_INDEX_VARIABLE #include "cache.h" #include "abspath.h" +#include "advice.h" #include "config.h" #include "builtin.h" +#include "editor.h" #include "environment.h" #include "exec-cmd.h" #include "gettext.h" @@ -26,6 +28,7 @@ #include "diffcore.h" #include "unpack-trees.h" #include "branch.h" +#include "object-name.h" #include "sequencer.h" #include "revision.h" #include "merge-recursive.h" @@ -37,6 +40,7 @@ #include "apply.h" #include "string-list.h" #include "packfile.h" +#include "pager.h" #include "repository.h" #include "pretty.h" #include "wrapper.h" diff --git a/builtin/bisect.c b/builtin/bisect.c index 26f07357a0..4b2143d455 100644 --- a/builtin/bisect.c +++ b/builtin/bisect.c @@ -3,12 +3,14 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "parse-options.h" #include "bisect.h" #include "refs.h" #include "dir.h" #include "strvec.h" #include "run-command.h" +#include "oid-array.h" #include "prompt.h" #include "quote.h" #include "revision.h" diff --git a/builtin/blame.c b/builtin/blame.c index a8d2114adc..2df6039a6e 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -28,7 +28,9 @@ #include "line-log.h" #include "dir.h" #include "progress.h" +#include "object-name.h" #include "object-store.h" +#include "pager.h" #include "blame.h" #include "refs.h" #include "setup.h" diff --git a/builtin/branch.c b/builtin/branch.c index bb7e1ac206..501c47657c 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -8,11 +8,13 @@ #include "cache.h" #include "config.h" #include "color.h" +#include "editor.h" #include "environment.h" #include "refs.h" #include "commit.h" #include "builtin.h" #include "gettext.h" +#include "object-name.h" #include "remote.h" #include "parse-options.h" #include "branch.h" diff --git a/builtin/bugreport.c b/builtin/bugreport.c index 52955e1d38..daf6c23657 100644 --- a/builtin/bugreport.c +++ b/builtin/bugreport.c @@ -1,5 +1,6 @@ #include "builtin.h" #include "abspath.h" +#include "editor.h" #include "gettext.h" #include "parse-options.h" #include "strbuf.h" @@ -8,6 +9,7 @@ #include "hook.h" #include "hook-list.h" #include "diagnose.h" +#include "object-file.h" #include "setup.h" #include "wrapper.h" diff --git a/builtin/cat-file.c b/builtin/cat-file.c index 04d4bb6c77..0bafc14e6c 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -7,6 +7,7 @@ #include "cache.h" #include "alloc.h" #include "config.h" +#include "convert.h" #include "builtin.h" #include "diff.h" #include "environment.h" @@ -19,6 +20,8 @@ #include "tree-walk.h" #include "oid-array.h" #include "packfile.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "replace-object.h" #include "promisor-remote.h" diff --git a/builtin/check-attr.c b/builtin/check-attr.c index 1dbe9d6ca8..037bf1aaa2 100644 --- a/builtin/check-attr.c +++ b/builtin/check-attr.c @@ -5,6 +5,7 @@ #include "attr.h" #include "environment.h" #include "gettext.h" +#include "object-name.h" #include "quote.h" #include "setup.h" #include "parse-options.h" diff --git a/builtin/checkout.c b/builtin/checkout.c index 38a8cd6a96..6f5d82ed3d 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -15,7 +15,9 @@ #include "hook.h" #include "ll-merge.h" #include "lockfile.h" +#include "mem-pool.h" #include "merge-recursive.h" +#include "object-name.h" #include "object-store.h" #include "parse-options.h" #include "refs.h" @@ -26,6 +28,7 @@ #include "setup.h" #include "submodule.h" #include "submodule-config.h" +#include "trace2.h" #include "tree.h" #include "tree-walk.h" #include "unpack-trees.h" diff --git a/builtin/clone.c b/builtin/clone.c index eeec8067ec..186845ef0b 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -11,6 +11,7 @@ #define USE_THE_INDEX_VARIABLE #include "builtin.h" #include "abspath.h" +#include "advice.h" #include "config.h" #include "environment.h" #include "gettext.h" @@ -20,6 +21,7 @@ #include "fetch-pack.h" #include "refs.h" #include "refspec.h" +#include "object-file.h" #include "object-store.h" #include "tree.h" #include "tree-walk.h" @@ -40,6 +42,7 @@ #include "hook.h" #include "bundle.h" #include "bundle-uri.h" +#include "wrapper.h" /* * Overall FIXMEs: diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c index 9011426976..a3d00fa232 100644 --- a/builtin/commit-graph.c +++ b/builtin/commit-graph.c @@ -12,6 +12,7 @@ #include "progress.h" #include "replace-object.h" #include "tag.h" +#include "trace2.h" #define BUILTIN_COMMIT_GRAPH_VERIFY_USAGE \ N_("git commit-graph verify [--object-dir ] [--shallow] [--[no-]progress]") diff --git a/builtin/commit-tree.c b/builtin/commit-tree.c index 15be167f87..d1d251c3de 100644 --- a/builtin/commit-tree.c +++ b/builtin/commit-tree.c @@ -7,6 +7,7 @@ #include "config.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "object-store.h" #include "repository.h" #include "commit.h" diff --git a/builtin/commit.c b/builtin/commit.c index 9d8e1ea91a..e67c4be221 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -7,11 +7,13 @@ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "advice.h" #include "config.h" #include "lockfile.h" #include "cache-tree.h" #include "color.h" #include "dir.h" +#include "editor.h" #include "environment.h" #include "builtin.h" #include "diff.h" @@ -26,6 +28,7 @@ #include "log-tree.h" #include "strbuf.h" #include "utf8.h" +#include "object-name.h" #include "parse-options.h" #include "string-list.h" #include "rerere.h" diff --git a/builtin/config.c b/builtin/config.c index fe79fb60c4..9401f1e5e3 100644 --- a/builtin/config.c +++ b/builtin/config.c @@ -3,6 +3,7 @@ #include "alloc.h" #include "config.h" #include "color.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "ident.h" diff --git a/builtin/credential-cache--daemon.c b/builtin/credential-cache--daemon.c index 62c09a271d..4e571d9951 100644 --- a/builtin/credential-cache--daemon.c +++ b/builtin/credential-cache--daemon.c @@ -2,6 +2,7 @@ #include "abspath.h" #include "alloc.h" #include "gettext.h" +#include "object-file.h" #include "parse-options.h" #ifndef NO_UNIX_SOCKETS diff --git a/builtin/describe.c b/builtin/describe.c index c6b388e649..55b4baaa22 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -11,6 +11,7 @@ #include "refs.h" #include "builtin.h" #include "exec-cmd.h" +#include "object-name.h" #include "parse-options.h" #include "revision.h" #include "diff.h" diff --git a/builtin/diagnose.c b/builtin/diagnose.c index 0f8b64994c..4f22eb2b55 100644 --- a/builtin/diagnose.c +++ b/builtin/diagnose.c @@ -1,6 +1,7 @@ #include "builtin.h" #include "abspath.h" #include "gettext.h" +#include "object-file.h" #include "parse-options.h" #include "diagnose.h" diff --git a/builtin/difftool.c b/builtin/difftool.c index 5ba524fa63..f09d24d37f 100644 --- a/builtin/difftool.c +++ b/builtin/difftool.c @@ -25,6 +25,7 @@ #include "strvec.h" #include "strbuf.h" #include "lockfile.h" +#include "object-file.h" #include "object-store.h" #include "dir.h" #include "entry.h" diff --git a/builtin/fast-export.c b/builtin/fast-export.c index 8224bf4bc1..9a95f6a1a8 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@ -10,6 +10,7 @@ #include "hex.h" #include "refs.h" #include "refspec.h" +#include "object-file.h" #include "object-store.h" #include "commit.h" #include "object.h" diff --git a/builtin/fast-import.c b/builtin/fast-import.c index 1fb95275d7..bbd9b2b3e7 100644 --- a/builtin/fast-import.c +++ b/builtin/fast-import.c @@ -19,6 +19,8 @@ #include "dir.h" #include "run-command.h" #include "packfile.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "mem-pool.h" #include "commit-reach.h" diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index 5f341b794d..3ba0fe5a39 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -2,6 +2,7 @@ #include "alloc.h" #include "gettext.h" #include "hex.h" +#include "object-file.h" #include "pkt-line.h" #include "fetch-pack.h" #include "remote.h" diff --git a/builtin/fetch.c b/builtin/fetch.c index 85bd280103..ab623f41b4 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -2,6 +2,7 @@ * "git fetch" */ #include "cache.h" +#include "advice.h" #include "config.h" #include "gettext.h" #include "environment.h" @@ -9,8 +10,10 @@ #include "repository.h" #include "refs.h" #include "refspec.h" +#include "object-name.h" #include "object-store.h" #include "oidset.h" +#include "oid-array.h" #include "commit.h" #include "builtin.h" #include "string-list.h" @@ -25,12 +28,15 @@ #include "strvec.h" #include "utf8.h" #include "packfile.h" +#include "pager.h" #include "list-objects-filter-options.h" #include "commit-reach.h" #include "branch.h" #include "promisor-remote.h" #include "commit-graph.h" #include "shallow.h" +#include "trace.h" +#include "trace2.h" #include "worktree.h" #include "bundle-uri.h" diff --git a/builtin/fsck.c b/builtin/fsck.c index 095b39d398..35a6de3cdb 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -19,6 +19,8 @@ #include "streaming.h" #include "decorate.h" #include "packfile.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "replace-object.h" #include "resolve-undo.h" diff --git a/builtin/fsmonitor--daemon.c b/builtin/fsmonitor--daemon.c index 42af6a2cc7..f6dd9a784c 100644 --- a/builtin/fsmonitor--daemon.c +++ b/builtin/fsmonitor--daemon.c @@ -14,6 +14,7 @@ #include "simple-ipc.h" #include "khash.h" #include "pkt-line.h" +#include "trace2.h" static const char * const builtin_fsmonitor__daemon_usage[] = { N_("git fsmonitor--daemon start []"), diff --git a/builtin/gc.c b/builtin/gc.c index edd98d35a5..f8569bfacc 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -25,6 +25,7 @@ #include "commit.h" #include "commit-graph.h" #include "packfile.h" +#include "object-file.h" #include "object-store.h" #include "pack.h" #include "pack-objects.h" @@ -37,6 +38,7 @@ #include "gettext.h" #include "hook.h" #include "setup.h" +#include "trace2.h" #include "wrapper.h" #define FAILED_RUN "failed to run %s" diff --git a/builtin/grep.c b/builtin/grep.c index a1b68d90bd..b86c754def 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -26,8 +26,11 @@ #include "setup.h" #include "submodule.h" #include "submodule-config.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "packfile.h" +#include "pager.h" #include "write-or-die.h" static const char *grep_prefix; diff --git a/builtin/hash-object.c b/builtin/hash-object.c index a15fe4fd3f..a380121166 100644 --- a/builtin/hash-object.c +++ b/builtin/hash-object.c @@ -9,6 +9,7 @@ #include "config.h" #include "gettext.h" #include "hex.h" +#include "object-file.h" #include "object-store.h" #include "blob.h" #include "quote.h" diff --git a/builtin/help.c b/builtin/help.c index 87333a02ec..128aa83099 100644 --- a/builtin/help.c +++ b/builtin/help.c @@ -6,6 +6,7 @@ #include "builtin.h" #include "exec-cmd.h" #include "gettext.h" +#include "pager.h" #include "parse-options.h" #include "run-command.h" #include "config-list.h" diff --git a/builtin/index-pack.c b/builtin/index-pack.c index b17e79cd40..0f59cf8aa0 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -17,7 +17,10 @@ #include "streaming.h" #include "thread-utils.h" #include "packfile.h" +#include "pack-revindex.h" +#include "object-file.h" #include "object-store.h" +#include "oid-array.h" #include "replace-object.h" #include "promisor-remote.h" #include "setup.h" diff --git a/builtin/init-db.c b/builtin/init-db.c index ba6e0b20fa..6183f3fb3f 100644 --- a/builtin/init-db.c +++ b/builtin/init-db.c @@ -11,6 +11,7 @@ #include "refs.h" #include "builtin.h" #include "exec-cmd.h" +#include "object-file.h" #include "parse-options.h" #include "setup.h" #include "worktree.h" diff --git a/builtin/log.c b/builtin/log.c index 7d19578963..4f162ff4d0 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -12,7 +12,10 @@ #include "gettext.h" #include "hex.h" #include "refs.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" +#include "pager.h" #include "color.h" #include "commit.h" #include "diff.h" @@ -20,6 +23,7 @@ #include "revision.h" #include "log-tree.h" #include "builtin.h" +#include "oid-array.h" #include "tag.h" #include "reflog-walk.h" #include "patch-ids.h" diff --git a/builtin/ls-files.c b/builtin/ls-files.c index ed35fa8d8e..625f48f0d6 100644 --- a/builtin/ls-files.c +++ b/builtin/ls-files.c @@ -8,10 +8,12 @@ #include "cache.h" #include "repository.h" #include "config.h" +#include "convert.h" #include "quote.h" #include "dir.h" #include "builtin.h" #include "gettext.h" +#include "object-name.h" #include "strbuf.h" #include "tree.h" #include "cache-tree.h" diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c index f32e6be219..077977a461 100644 --- a/builtin/ls-tree.c +++ b/builtin/ls-tree.c @@ -7,6 +7,7 @@ #include "config.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "object-store.h" #include "blob.h" #include "tree.h" diff --git a/builtin/merge-base.c b/builtin/merge-base.c index 3f22273b40..854019a32d 100644 --- a/builtin/merge-base.c +++ b/builtin/merge-base.c @@ -7,6 +7,7 @@ #include "refs.h" #include "diff.h" #include "revision.h" +#include "object-name.h" #include "parse-options.h" #include "repository.h" #include "commit-reach.h" diff --git a/builtin/merge-recursive.c b/builtin/merge-recursive.c index 91ed55f3ab..708a8ffabe 100644 --- a/builtin/merge-recursive.c +++ b/builtin/merge-recursive.c @@ -1,9 +1,11 @@ #include "cache.h" #include "builtin.h" +#include "advice.h" #include "commit.h" #include "gettext.h" #include "tag.h" #include "merge-recursive.h" +#include "object-name.h" #include "xdiff-interface.h" static const char builtin_merge_recursive_usage[] = diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index 803e380856..6b9f006ec1 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -8,6 +8,7 @@ #include "commit.h" #include "commit-reach.h" #include "merge-ort.h" +#include "object-name.h" #include "object-store.h" #include "parse-options.h" #include "repository.h" diff --git a/builtin/merge.c b/builtin/merge.c index a99be9610e..8da3e46abb 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -9,11 +9,14 @@ #define USE_THE_INDEX_VARIABLE #include "cache.h" #include "abspath.h" +#include "advice.h" #include "alloc.h" #include "config.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "parse-options.h" #include "builtin.h" #include "lockfile.h" diff --git a/builtin/mktag.c b/builtin/mktag.c index b3f6d7ea38..44fa56eff3 100644 --- a/builtin/mktag.c +++ b/builtin/mktag.c @@ -4,6 +4,7 @@ #include "parse-options.h" #include "tag.h" #include "replace-object.h" +#include "object-file.h" #include "object-store.h" #include "fsck.h" #include "config.h" diff --git a/builtin/mv.c b/builtin/mv.c index b7c5ffbd8c..32935af48e 100644 --- a/builtin/mv.c +++ b/builtin/mv.c @@ -6,10 +6,12 @@ #define USE_THE_INDEX_VARIABLE #include "builtin.h" #include "abspath.h" +#include "advice.h" #include "alloc.h" #include "config.h" #include "environment.h" #include "gettext.h" +#include "object-file.h" #include "pathspec.h" #include "lockfile.h" #include "dir.h" diff --git a/builtin/name-rev.c b/builtin/name-rev.c index 831d360a78..593f0506a1 100644 --- a/builtin/name-rev.c +++ b/builtin/name-rev.c @@ -8,6 +8,8 @@ #include "commit.h" #include "tag.h" #include "refs.h" +#include "object-name.h" +#include "pager.h" #include "parse-options.h" #include "prio-queue.h" #include "hash-lookup.h" diff --git a/builtin/notes.c b/builtin/notes.c index 4ff44f1e3d..d5788352b6 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -10,9 +10,11 @@ #include "cache.h" #include "config.h" #include "builtin.h" +#include "editor.h" #include "gettext.h" #include "hex.h" #include "notes.h" +#include "object-name.h" #include "object-store.h" #include "repository.h" #include "blob.h" diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index 77d88f85b0..9297a077f8 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -33,6 +33,7 @@ #include "strvec.h" #include "list.h" #include "packfile.h" +#include "object-file.h" #include "object-store.h" #include "replace-object.h" #include "dir.h" diff --git a/builtin/prune.c b/builtin/prune.c index 5c0952f5c6..5dc9b20720 100644 --- a/builtin/prune.c +++ b/builtin/prune.c @@ -11,6 +11,8 @@ #include "progress.h" #include "prune-packed.h" #include "replace-object.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "shallow.h" diff --git a/builtin/pull.c b/builtin/pull.c index 5405d09f22..967368ebc6 100644 --- a/builtin/pull.c +++ b/builtin/pull.c @@ -7,10 +7,12 @@ */ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "advice.h" #include "config.h" #include "builtin.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "parse-options.h" #include "exec-cmd.h" #include "run-command.h" diff --git a/builtin/push.c b/builtin/push.c index fa550b8f80..6001e4ae0a 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -2,6 +2,7 @@ * "git push" */ #include "cache.h" +#include "advice.h" #include "branch.h" #include "config.h" #include "environment.h" @@ -16,6 +17,7 @@ #include "submodule.h" #include "submodule-config.h" #include "send-pack.h" +#include "trace2.h" #include "color.h" static const char * const push_usage[] = { diff --git a/builtin/range-diff.c b/builtin/range-diff.c index b72af527f0..04339a92ea 100644 --- a/builtin/range-diff.c +++ b/builtin/range-diff.c @@ -1,6 +1,7 @@ #include "cache.h" #include "builtin.h" #include "gettext.h" +#include "object-name.h" #include "parse-options.h" #include "range-diff.h" #include "config.h" diff --git a/builtin/read-tree.c b/builtin/read-tree.c index 600d4f748f..d61cbad96d 100644 --- a/builtin/read-tree.c +++ b/builtin/read-tree.c @@ -11,6 +11,7 @@ #include "hex.h" #include "lockfile.h" #include "object.h" +#include "object-name.h" #include "tree.h" #include "tree-walk.h" #include "cache-tree.h" diff --git a/builtin/rebase.c b/builtin/rebase.c index 1ceac603c7..ace1d5e8d1 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -21,6 +21,8 @@ #include "cache-tree.h" #include "unpack-trees.h" #include "lockfile.h" +#include "object-file.h" +#include "object-name.h" #include "parse-options.h" #include "commit.h" #include "diff.h" @@ -32,6 +34,7 @@ #include "sequencer.h" #include "rebase-interactive.h" #include "reset.h" +#include "trace2.h" #include "hook.h" #include "wrapper.h" diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index 9109552533..0dedcd7204 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -29,9 +29,12 @@ #include "tmp-objdir.h" #include "oidset.h" #include "packfile.h" +#include "object-name.h" #include "object-store.h" #include "protocol.h" #include "commit-reach.h" +#include "trace.h" +#include "trace2.h" #include "worktree.h" #include "shallow.h" #include "parse-options.h" diff --git a/builtin/replace.c b/builtin/replace.c index d2adc8ab61..981f189443 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -11,12 +11,15 @@ #include "cache.h" #include "config.h" #include "builtin.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "hex.h" #include "refs.h" #include "parse-options.h" #include "run-command.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "replace-object.h" #include "repository.h" diff --git a/builtin/reset.c b/builtin/reset.c index 0ed329236c..f99f32d580 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -9,6 +9,7 @@ */ #define USE_THE_INDEX_VARIABLE #include "builtin.h" +#include "advice.h" #include "config.h" #include "environment.h" #include "gettext.h" @@ -23,12 +24,15 @@ #include "diffcore.h" #include "tree.h" #include "branch.h" +#include "object-name.h" #include "parse-options.h" #include "unpack-trees.h" #include "cache-tree.h" #include "setup.h" #include "submodule.h" #include "submodule-config.h" +#include "trace.h" +#include "trace2.h" #include "dir.h" #include "add-interactive.h" diff --git a/builtin/rev-list.c b/builtin/rev-list.c index a3dbbb6338..6dc8be492a 100644 --- a/builtin/rev-list.c +++ b/builtin/rev-list.c @@ -10,6 +10,8 @@ #include "list-objects-filter.h" #include "list-objects-filter-options.h" #include "object.h" +#include "object-name.h" +#include "object-file.h" #include "object-store.h" #include "pack.h" #include "pack-bitmap.h" diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index 1af2089f9b..852e49e340 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -15,6 +15,7 @@ #include "refs.h" #include "quote.h" #include "builtin.h" +#include "object-name.h" #include "parse-options.h" #include "diff.h" #include "revision.h" diff --git a/builtin/rm.c b/builtin/rm.c index 6be9281742..d36072252e 100644 --- a/builtin/rm.c +++ b/builtin/rm.c @@ -13,6 +13,7 @@ #include "cache-tree.h" #include "gettext.h" #include "tree-walk.h" +#include "object-name.h" #include "parse-options.h" #include "string-list.h" #include "setup.h" diff --git a/builtin/show-branch.c b/builtin/show-branch.c index 463a8d11c3..20030b75e3 100644 --- a/builtin/show-branch.c +++ b/builtin/show-branch.c @@ -8,6 +8,7 @@ #include "builtin.h" #include "color.h" #include "strvec.h" +#include "object-name.h" #include "parse-options.h" #include "dir.h" #include "commit-slab.h" diff --git a/builtin/show-ref.c b/builtin/show-ref.c index 138d30a005..a2243b4219 100644 --- a/builtin/show-ref.c +++ b/builtin/show-ref.c @@ -4,6 +4,7 @@ #include "gettext.h" #include "hex.h" #include "refs.h" +#include "object-name.h" #include "object-store.h" #include "object.h" #include "tag.h" diff --git a/builtin/sparse-checkout.c b/builtin/sparse-checkout.c index 5e917ead7b..40d420f06c 100644 --- a/builtin/sparse-checkout.c +++ b/builtin/sparse-checkout.c @@ -4,6 +4,8 @@ #include "dir.h" #include "environment.h" #include "gettext.h" +#include "object-file.h" +#include "object-name.h" #include "parse-options.h" #include "pathspec.h" #include "repository.h" diff --git a/builtin/stash.c b/builtin/stash.c index 735d27039e..a7e17ffe38 100644 --- a/builtin/stash.c +++ b/builtin/stash.c @@ -5,6 +5,7 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "parse-options.h" #include "refs.h" #include "lockfile.h" diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index 569068e6a2..6bf8d666ce 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -24,6 +24,8 @@ #include "revision.h" #include "diffcore.h" #include "diff.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "advice.h" #include "branch.h" diff --git a/builtin/tag.c b/builtin/tag.c index ab5f5c74f4..1850a6a6fd 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -7,12 +7,15 @@ */ #include "cache.h" +#include "advice.h" #include "config.h" #include "builtin.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "hex.h" #include "refs.h" +#include "object-name.h" #include "object-store.h" #include "tag.h" #include "run-command.h" diff --git a/builtin/unpack-file.c b/builtin/unpack-file.c index 00179180c7..b35a4b9dfe 100644 --- a/builtin/unpack-file.c +++ b/builtin/unpack-file.c @@ -1,6 +1,7 @@ #include "builtin.h" #include "config.h" #include "hex.h" +#include "object-name.h" #include "object-store.h" #include "wrapper.h" diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c index 585e81b106..2c52c3a741 100644 --- a/builtin/unpack-objects.c +++ b/builtin/unpack-objects.c @@ -4,6 +4,7 @@ #include "config.h" #include "environment.h" #include "gettext.h" +#include "git-zlib.h" #include "hex.h" #include "object-store.h" #include "object.h" diff --git a/builtin/update-index.c b/builtin/update-index.c index 03cda5e60d..33b00cef15 100644 --- a/builtin/update-index.c +++ b/builtin/update-index.c @@ -15,6 +15,7 @@ #include "cache-tree.h" #include "tree-walk.h" #include "builtin.h" +#include "object-file.h" #include "refs.h" #include "resolve-undo.h" #include "parse-options.h" diff --git a/builtin/update-ref.c b/builtin/update-ref.c index 3ffd75b3e7..6ca85420c3 100644 --- a/builtin/update-ref.c +++ b/builtin/update-ref.c @@ -3,6 +3,7 @@ #include "gettext.h" #include "refs.h" #include "builtin.h" +#include "object-name.h" #include "parse-options.h" #include "quote.h" #include "strvec.h" diff --git a/builtin/var.c b/builtin/var.c index acb988d2d5..2149998980 100644 --- a/builtin/var.c +++ b/builtin/var.c @@ -5,7 +5,9 @@ */ #include "builtin.h" #include "config.h" +#include "editor.h" #include "ident.h" +#include "pager.h" #include "refs.h" static const char var_usage[] = "git var (-l | )"; diff --git a/builtin/verify-commit.c b/builtin/verify-commit.c index 4d10aa98b1..5d99b82a64 100644 --- a/builtin/verify-commit.c +++ b/builtin/verify-commit.c @@ -9,6 +9,7 @@ #include "config.h" #include "builtin.h" #include "gettext.h" +#include "object-name.h" #include "object-store.h" #include "repository.h" #include "commit.h" diff --git a/builtin/verify-tag.c b/builtin/verify-tag.c index 28d0da6845..c6019a0ad8 100644 --- a/builtin/verify-tag.c +++ b/builtin/verify-tag.c @@ -11,6 +11,7 @@ #include "gettext.h" #include "tag.h" #include "run-command.h" +#include "object-name.h" #include "parse-options.h" #include "gpg-interface.h" #include "ref-filter.h" diff --git a/builtin/worktree.c b/builtin/worktree.c index 39e9e5c9ce..a61bc32189 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -7,6 +7,8 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-file.h" +#include "object-name.h" #include "parse-options.h" #include "strvec.h" #include "branch.h" diff --git a/bulk-checkin.c b/bulk-checkin.c index 6362b6aabc..d843279715 100644 --- a/bulk-checkin.c +++ b/bulk-checkin.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2011, Google Inc. */ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "bulk-checkin.h" #include "environment.h" @@ -15,7 +15,9 @@ #include "string-list.h" #include "tmp-objdir.h" #include "packfile.h" +#include "object-file.h" #include "object-store.h" +#include "wrapper.h" static int odb_transaction_nesting; diff --git a/bundle.c b/bundle.c index 6471489975..a5505368de 100644 --- a/bundle.c +++ b/bundle.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "lockfile.h" #include "bundle.h" #include "environment.h" diff --git a/cache-tree.c b/cache-tree.c index ff14b527da..ebfe649b33 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -7,10 +7,13 @@ #include "tree-walk.h" #include "cache-tree.h" #include "bulk-checkin.h" +#include "object-file.h" #include "object-store.h" #include "replace-object.h" #include "promisor-remote.h" #include "sparse-index.h" +#include "trace.h" +#include "trace2.h" #ifndef DEBUG_CACHE_TREE #define DEBUG_CACHE_TREE 0 diff --git a/cache.h b/cache.h index 82d7b112b4..71e2fe74c4 100644 --- a/cache.h +++ b/cache.h @@ -4,46 +4,11 @@ #include "git-compat-util.h" #include "strbuf.h" #include "hashmap.h" -#include "list.h" -#include "advice.h" #include "gettext.h" -#include "convert.h" -#include "trace.h" -#include "trace2.h" #include "string-list.h" -#include "pack-revindex.h" -#include "hash.h" -#include "path.h" #include "pathspec.h" #include "object.h" -#include "oid-array.h" -#include "repository.h" #include "statinfo.h" -#include "mem-pool.h" - -typedef struct git_zstream { - z_stream z; - unsigned long avail_in; - unsigned long avail_out; - unsigned long total_in; - unsigned long total_out; - unsigned char *next_in; - unsigned char *next_out; -} git_zstream; - -void git_inflate_init(git_zstream *); -void git_inflate_init_gzip_only(git_zstream *); -void git_inflate_end(git_zstream *); -int git_inflate(git_zstream *, int flush); - -void git_deflate_init(git_zstream *, int level); -void git_deflate_init_gzip(git_zstream *, int level); -void git_deflate_init_raw(git_zstream *, int level); -void git_deflate_end(git_zstream *); -int git_deflate_abort(git_zstream *); -int git_deflate_end_gently(git_zstream *); -int git_deflate(git_zstream *, int flush); -unsigned long git_deflate_bound(git_zstream *, unsigned long); #if defined(DT_UNKNOWN) && !defined(NO_D_TYPE_IN_DIRENT) #define DTYPE(de) ((de)->d_type) @@ -59,18 +24,6 @@ unsigned long git_deflate_bound(git_zstream *, unsigned long); #define DTYPE(de) DT_UNKNOWN #endif -/* unknown mode (impossible combination S_IFIFO|S_IFCHR) */ -#define S_IFINVALID 0030000 - -/* - * A "directory link" is a link to another git directory. - * - * The value 0160000 is not normally a valid mode, and - * also just happens to be S_IFDIR + S_IFLNK - */ -#define S_IFGITLINK 0160000 -#define S_ISGITLINK(m) (((m) & S_IFMT) == S_IFGITLINK) - /* * Some mode bits are also used internally for computations. * @@ -86,27 +39,6 @@ unsigned long git_deflate_bound(git_zstream *, unsigned long); #define S_DIFFTREE_IFXMIN_NEQ 0x80000000 -/* - * Intensive research over the course of many years has shown that - * port 9418 is totally unused by anything else. Or - * - * Your search - "port 9418" - did not match any documents. - * - * as www.google.com puts it. - * - * This port has been properly assigned for git use by IANA: - * git (Assigned-9418) [I06-050728-0001]. - * - * git 9418/tcp git pack transfer service - * git 9418/udp git pack transfer service - * - * with Linus Torvalds as the point of - * contact. September 2005. - * - * See http://www.iana.org/assignments/port-numbers - */ -#define DEFAULT_GIT_PORT 9418 - /* * Basic data structures for the directory cache */ @@ -186,11 +118,8 @@ struct cache_entry { #error "CE_EXTENDED_FLAGS out of range" #endif -#define S_ISSPARSEDIR(m) ((m) == S_IFDIR) - /* Forward structure decls */ struct pathspec; -struct child_process; struct tree; /* @@ -228,17 +157,6 @@ static inline unsigned create_ce_flags(unsigned stage) #define ce_mark_uptodate(ce) ((ce)->ce_flags |= CE_UPTODATE) #define ce_intent_to_add(ce) ((ce)->ce_flags & CE_INTENT_TO_ADD) -#define ce_permissions(mode) (((mode) & 0100) ? 0755 : 0644) -static inline unsigned int create_ce_mode(unsigned int mode) -{ - if (S_ISLNK(mode)) - return S_IFLNK; - if (S_ISSPARSEDIR(mode)) - return S_IFDIR; - if (S_ISDIR(mode) || S_ISGITLINK(mode)) - return S_IFGITLINK; - return S_IFREG | ce_permissions(mode); -} static inline unsigned int ce_mode_from_stat(const struct cache_entry *ce, unsigned int mode) { @@ -265,16 +183,6 @@ static inline int ce_to_dtype(const struct cache_entry *ce) else return DT_UNKNOWN; } -static inline unsigned int canon_mode(unsigned int mode) -{ - if (S_ISREG(mode)) - return S_IFREG | ce_permissions(mode); - if (S_ISLNK(mode)) - return S_IFLNK; - if (S_ISDIR(mode)) - return S_IFDIR; - return S_IFGITLINK; -} static inline int ce_path_match(struct index_state *istate, const struct cache_entry *ce, @@ -445,13 +353,6 @@ void prefetch_cache_entries(const struct index_state *istate, extern struct index_state the_index; #endif -static inline enum object_type object_type(unsigned int mode) -{ - return S_ISDIR(mode) ? OBJ_TREE : - S_ISGITLINK(mode) ? OBJ_COMMIT : - OBJ_BLOB; -} - #define INIT_DB_QUIET 0x0001 #define INIT_DB_EXIST_OK 0x0002 @@ -626,13 +527,6 @@ int has_racy_timestamp(struct index_state *istate); int ie_match_stat(struct index_state *, const struct cache_entry *, struct stat *, unsigned int); int ie_modified(struct index_state *, const struct cache_entry *, struct stat *, unsigned int); -#define HASH_WRITE_OBJECT 1 -#define HASH_FORMAT_CHECK 2 -#define HASH_RENORMALIZE 4 -#define HASH_SILENT 8 -int index_fd(struct index_state *istate, struct object_id *oid, int fd, struct stat *st, enum object_type type, const char *path, unsigned flags); -int index_path(struct index_state *istate, struct object_id *oid, const char *path, struct stat *st, unsigned flags); - /* * Record to sd the data from st that we use to check whether a file * might have changed. @@ -684,8 +578,6 @@ void set_alternate_index_output(const char *); extern int verify_index_checksum; extern int verify_ce_order; -extern int quote_path_fully; - #define MTIME_CHANGED 0x0001 #define CTIME_CHANGED 0x0002 #define OWNER_CHANGED 0x0004 @@ -694,213 +586,6 @@ extern int quote_path_fully; #define DATA_CHANGED 0x0020 #define TYPE_CHANGED 0x0040 -/* - * Return an abbreviated sha1 unique within this repository's object database. - * The result will be at least `len` characters long, and will be NUL - * terminated. - * - * The non-`_r` version returns a static buffer which remains valid until 4 - * more calls to repo_find_unique_abbrev are made. - * - * The `_r` variant writes to a buffer supplied by the caller, which must be at - * least `GIT_MAX_HEXSZ + 1` bytes. The return value is the number of bytes - * written (excluding the NUL terminator). - * - * Note that while this version avoids the static buffer, it is not fully - * reentrant, as it calls into other non-reentrant git code. - */ -const char *repo_find_unique_abbrev(struct repository *r, const struct object_id *oid, int len); -int repo_find_unique_abbrev_r(struct repository *r, char *hex, const struct object_id *oid, int len); - -/* - * Create the directory containing the named path, using care to be - * somewhat safe against races. Return one of the scld_error values to - * indicate success/failure. On error, set errno to describe the - * problem. - * - * SCLD_VANISHED indicates that one of the ancestor directories of the - * path existed at one point during the function call and then - * suddenly vanished, probably because another process pruned the - * directory while we were working. To be robust against this kind of - * race, callers might want to try invoking the function again when it - * returns SCLD_VANISHED. - * - * safe_create_leading_directories() temporarily changes path while it - * is working but restores it before returning. - * safe_create_leading_directories_const() doesn't modify path, even - * temporarily. Both these variants adjust the permissions of the - * created directories to honor core.sharedRepository, so they are best - * suited for files inside the git dir. For working tree files, use - * safe_create_leading_directories_no_share() instead, as it ignores - * the core.sharedRepository setting. - */ -enum scld_error { - SCLD_OK = 0, - SCLD_FAILED = -1, - SCLD_PERMS = -2, - SCLD_EXISTS = -3, - SCLD_VANISHED = -4 -}; -enum scld_error safe_create_leading_directories(char *path); -enum scld_error safe_create_leading_directories_const(const char *path); -enum scld_error safe_create_leading_directories_no_share(char *path); - -int mkdir_in_gitdir(const char *path); - -int git_open_cloexec(const char *name, int flags); -#define git_open(name) git_open_cloexec(name, O_RDONLY) - -/** - * unpack_loose_header() initializes the data stream needed to unpack - * a loose object header. - * - * Returns: - * - * - ULHR_OK on success - * - ULHR_BAD on error - * - ULHR_TOO_LONG if the header was too long - * - * It will only parse up to MAX_HEADER_LEN bytes unless an optional - * "hdrbuf" argument is non-NULL. This is intended for use with - * OBJECT_INFO_ALLOW_UNKNOWN_TYPE to extract the bad type for (error) - * reporting. The full header will be extracted to "hdrbuf" for use - * with parse_loose_header(), ULHR_TOO_LONG will still be returned - * from this function to indicate that the header was too long. - */ -enum unpack_loose_header_result { - ULHR_OK, - ULHR_BAD, - ULHR_TOO_LONG, -}; -enum unpack_loose_header_result unpack_loose_header(git_zstream *stream, - unsigned char *map, - unsigned long mapsize, - void *buffer, - unsigned long bufsiz, - struct strbuf *hdrbuf); - -/** - * parse_loose_header() parses the starting " \0" of an - * object. If it doesn't follow that format -1 is returned. To check - * the validity of the populate the "typep" in the "struct - * object_info". It will be OBJ_BAD if the object type is unknown. The - * parsed can be retrieved via "oi->sizep", and from there - * passed to unpack_loose_rest(). - */ -struct object_info; -int parse_loose_header(const char *hdr, struct object_info *oi); - -/** - * With in-core object data in "buf", rehash it to make sure the - * object name actually matches "oid" to detect object corruption. - * - * A negative value indicates an error, usually that the OID is not - * what we expected, but it might also indicate another error. - */ -int check_object_signature(struct repository *r, const struct object_id *oid, - void *map, unsigned long size, - enum object_type type); - -/** - * A streaming version of check_object_signature(). - * Try reading the object named with "oid" using - * the streaming interface and rehash it to do the same. - */ -int stream_object_signature(struct repository *r, const struct object_id *oid); - -int finalize_object_file(const char *tmpfile, const char *filename); - -/* Helper to check and "touch" a file */ -int check_and_freshen_file(const char *fn, int freshen); - -/* Convert to/from hex/sha1 representation */ -#define MINIMUM_ABBREV minimum_abbrev -#define DEFAULT_ABBREV default_abbrev - -/* used when the code does not know or care what the default abbrev is */ -#define FALLBACK_DEFAULT_ABBREV 7 - -struct object_context { - unsigned short mode; - /* - * symlink_path is only used by get_tree_entry_follow_symlinks, - * and only for symlinks that point outside the repository. - */ - struct strbuf symlink_path; - /* - * If GET_OID_RECORD_PATH is set, this will record path (if any) - * found when resolving the name. The caller is responsible for - * releasing the memory. - */ - char *path; -}; - -int repo_get_oid(struct repository *r, const char *str, struct object_id *oid); -__attribute__((format (printf, 2, 3))) -int get_oidf(struct object_id *oid, const char *fmt, ...); -int repo_get_oid_commit(struct repository *r, const char *str, struct object_id *oid); -int repo_get_oid_committish(struct repository *r, const char *str, struct object_id *oid); -int repo_get_oid_tree(struct repository *r, const char *str, struct object_id *oid); -int repo_get_oid_treeish(struct repository *r, const char *str, struct object_id *oid); -int repo_get_oid_blob(struct repository *r, const char *str, struct object_id *oid); -int repo_get_oid_mb(struct repository *r, const char *str, struct object_id *oid); -void maybe_die_on_misspelt_object_name(struct repository *repo, - const char *name, - const char *prefix); -enum get_oid_result get_oid_with_context(struct repository *repo, const char *str, - unsigned flags, struct object_id *oid, - struct object_context *oc); - -typedef int each_abbrev_fn(const struct object_id *oid, void *); -int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *); - -int set_disambiguate_hint_config(const char *var, const char *value); - -/* - * This reads short-hand syntax that not only evaluates to a commit - * object name, but also can act as if the end user spelled the name - * of the branch from the command line. - * - * - "@{-N}" finds the name of the Nth previous branch we were on, and - * places the name of the branch in the given buf and returns the - * number of characters parsed if successful. - * - * - "@{upstream}" finds the name of the other ref that - * is configured to merge with (missing defaults - * to the current branch), and places the name of the branch in the - * given buf and returns the number of characters parsed if - * successful. - * - * If the input is not of the accepted format, it returns a negative - * number to signal an error. - * - * If the input was ok but there are not N branch switches in the - * reflog, it returns 0. - */ -#define INTERPRET_BRANCH_LOCAL (1<<0) -#define INTERPRET_BRANCH_REMOTE (1<<1) -#define INTERPRET_BRANCH_HEAD (1<<2) -struct interpret_branch_name_options { - /* - * If "allowed" is non-zero, it is a treated as a bitfield of allowable - * expansions: local branches ("refs/heads/"), remote branches - * ("refs/remotes/"), or "HEAD". If no "allowed" bits are set, any expansion is - * allowed, even ones to refs outside of those namespaces. - */ - unsigned allowed; - - /* - * If ^{upstream} or ^{push} (or equivalent) is requested, and the - * branch in question does not have such a reference, return -1 instead - * of die()-ing. - */ - unsigned nonfatal_dangling_mark : 1; -}; -int repo_interpret_branch_name(struct repository *r, - const char *str, int len, - struct strbuf *buf, - const struct interpret_branch_name_options *options); - int base_name_compare(const char *name1, size_t len1, int mode1, const char *name2, size_t len2, int mode2); int df_name_compare(const char *name1, size_t len1, int mode1, @@ -908,21 +593,6 @@ int df_name_compare(const char *name1, size_t len1, int mode1, int name_compare(const char *name1, size_t len1, const char *name2, size_t len2); int cache_name_stage_compare(const char *name1, int len1, int stage1, const char *name2, int len2, int stage2); -void *read_object_with_reference(struct repository *r, - const struct object_id *oid, - enum object_type required_type, - unsigned long *size, - struct object_id *oid_ret); - -struct object *repo_peel_to_type(struct repository *r, - const char *name, int namelen, - struct object *o, enum object_type); - -const char *git_editor(void); -const char *git_sequence_editor(void); -const char *git_pager(int stdout_is_tty); -int is_terminal_dumb(void); - struct cache_def { struct strbuf path; int flags; @@ -959,36 +629,15 @@ struct pack_entry { struct packed_git *p; }; -/* - * Set this to 0 to prevent oid_object_info_extended() from fetching missing - * blobs. This has a difference only if extensions.partialClone is set. - * - * Its default value is 1. - */ -extern int fetch_if_missing; - /* Dumb servers support */ int update_server_info(int); -extern const char *git_mailmap_file; -extern const char *git_mailmap_blob; - #define COPY_READ_ERROR (-2) #define COPY_WRITE_ERROR (-3) int copy_fd(int ifd, int ofd); int copy_file(const char *dst, const char *src, int mode); int copy_file_with_time(const char *dst, const char *src, int mode); -/* pager.c */ -void setup_pager(void); -int pager_in_use(void); -extern int pager_use_color; -int term_columns(void); -void term_clear_line(void); -int decimal_width(uintmax_t); -int check_pager_config(const char *cmd); -void prepare_pager_args(struct child_process *, const char *pager); - /* base85 */ int decode_85(char *dst, const char *line, int linelen); void encode_85(char *buf, const unsigned char *data, int bytes); diff --git a/chdir-notify.c b/chdir-notify.c index 929ec01b3a..0d7bc04607 100644 --- a/chdir-notify.c +++ b/chdir-notify.c @@ -1,8 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "chdir-notify.h" #include "list.h" +#include "path.h" #include "strbuf.h" +#include "trace.h" struct chdir_notify_entry { const char *name; diff --git a/checkout.c b/checkout.c index 1247b88224..04238b2713 100644 --- a/checkout.c +++ b/checkout.c @@ -1,8 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" +#include "object-name.h" #include "remote.h" #include "refspec.h" #include "checkout.h" #include "config.h" +#include "strbuf.h" struct tracking_name_data { /* const */ char *src_ref; diff --git a/color.c b/color.c index 672dcbb73a..6031998d3e 100644 --- a/color.c +++ b/color.c @@ -1,8 +1,10 @@ #include "cache.h" #include "config.h" #include "color.h" +#include "editor.h" #include "gettext.h" #include "hex.h" +#include "pager.h" static int git_use_color_default = GIT_COLOR_AUTO; int color_stdout_is_tty = -1; diff --git a/column.c b/column.c index fbf88639aa..ff2f0abf39 100644 --- a/column.c +++ b/column.c @@ -1,7 +1,8 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "column.h" #include "string-list.h" +#include "pager.h" #include "parse-options.h" #include "run-command.h" #include "utf8.h" diff --git a/combine-diff.c b/combine-diff.c index 44ef6a1a81..f7e9fb5747 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -1,11 +1,13 @@ #include "cache.h" #include "object-store.h" #include "commit.h" +#include "convert.h" #include "blob.h" #include "diff.h" #include "diffcore.h" #include "environment.h" #include "hex.h" +#include "object-name.h" #include "quote.h" #include "xdiff-interface.h" #include "xdiff/xmacros.h" @@ -14,6 +16,7 @@ #include "userdiff.h" #include "oid-array.h" #include "revision.h" +#include "wrapper.h" static int compare_paths(const struct combine_diff_path *one, const struct diff_filespec *two) diff --git a/commit-graph.c b/commit-graph.c index b1e737c01b..43558b4d9b 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "gettext.h" #include "hex.h" @@ -11,7 +11,9 @@ #include "revision.h" #include "hash-lookup.h" #include "commit-graph.h" +#include "object-file.h" #include "object-store.h" +#include "oid-array.h" #include "alloc.h" #include "hashmap.h" #include "replace-object.h" diff --git a/commit.c b/commit.c index 6d844da9a6..878b4473e4 100644 --- a/commit.c +++ b/commit.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "tag.h" #include "commit.h" #include "commit-graph.h" @@ -6,6 +6,7 @@ #include "gettext.h" #include "hex.h" #include "repository.h" +#include "object-name.h" #include "object-store.h" #include "pkt-line.h" #include "utf8.h" diff --git a/common-main.c b/common-main.c index b83cb5cf06..f319317353 100644 --- a/common-main.c +++ b/common-main.c @@ -3,6 +3,7 @@ #include "gettext.h" #include "attr.h" #include "setup.h" +#include "trace2.h" /* * Many parts of Git have subprograms communicate via pipe, expect the diff --git a/compat/fsmonitor/fsm-listen-win32.c b/compat/fsmonitor/fsm-listen-win32.c index 7b07b74ba5..677b1bbdec 100644 --- a/compat/fsmonitor/fsm-listen-win32.c +++ b/compat/fsmonitor/fsm-listen-win32.c @@ -4,6 +4,7 @@ #include "fsm-listen.h" #include "fsmonitor--daemon.h" #include "gettext.h" +#include "trace2.h" /* * The documentation of ReadDirectoryChangesW() states that the maximum diff --git a/compat/mingw.c b/compat/mingw.c index 94c5a1daa4..abbc3faf32 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -12,6 +12,7 @@ #include "win32/lazyload.h" #include "../config.h" #include "../environment.h" +#include "../trace2.h" #include "../wrapper.h" #include "dir.h" #include "gettext.h" diff --git a/compat/pread.c b/compat/pread.c index 978cac4ec9..484e6d4c71 100644 --- a/compat/pread.c +++ b/compat/pread.c @@ -1,4 +1,5 @@ #include "../git-compat-util.h" +#include "../wrapper.h" ssize_t git_pread(int fd, void *buf, size_t count, off_t offset) { diff --git a/compat/simple-ipc/ipc-unix-socket.c b/compat/simple-ipc/ipc-unix-socket.c index 152db60a31..b2f4f22ce4 100644 --- a/compat/simple-ipc/ipc-unix-socket.c +++ b/compat/simple-ipc/ipc-unix-socket.c @@ -1,9 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "simple-ipc.h" #include "strbuf.h" #include "pkt-line.h" #include "thread-utils.h" +#include "trace2.h" #include "unix-socket.h" #include "unix-stream-server.h" diff --git a/compat/simple-ipc/ipc-win32.c b/compat/simple-ipc/ipc-win32.c index 997f614434..6adce3c650 100644 --- a/compat/simple-ipc/ipc-win32.c +++ b/compat/simple-ipc/ipc-win32.c @@ -5,6 +5,8 @@ #include "strbuf.h" #include "pkt-line.h" #include "thread-utils.h" +#include "trace.h" +#include "trace2.h" #include "accctrl.h" #include "aclapi.h" diff --git a/compat/win32/trace2_win32_process_info.c b/compat/win32/trace2_win32_process_info.c index a53fd92434..e3e895c78a 100644 --- a/compat/win32/trace2_win32_process_info.c +++ b/compat/win32/trace2_win32_process_info.c @@ -1,5 +1,6 @@ #include "../../cache.h" #include "../../json-writer.h" +#include "../../trace2.h" #include "lazyload.h" #include #include diff --git a/config.c b/config.c index fc929de3e0..43b0d3fb57 100644 --- a/config.c +++ b/config.c @@ -7,27 +7,33 @@ */ #include "cache.h" #include "abspath.h" +#include "advice.h" #include "alloc.h" #include "date.h" #include "branch.h" #include "config.h" +#include "convert.h" #include "environment.h" #include "gettext.h" #include "ident.h" #include "repository.h" #include "lockfile.h" +#include "mailmap.h" #include "exec-cmd.h" #include "strbuf.h" #include "quote.h" #include "hashmap.h" #include "string-list.h" +#include "object-name.h" #include "object-store.h" +#include "pager.h" #include "utf8.h" #include "dir.h" #include "color.h" #include "replace-object.h" #include "refs.h" #include "setup.h" +#include "trace2.h" #include "worktree.h" #include "wrapper.h" #include "write-or-die.h" diff --git a/connect.c b/connect.c index c0c8a38178..fd3179e545 100644 --- a/connect.c +++ b/connect.c @@ -1,5 +1,4 @@ #include "git-compat-util.h" -#include "cache.h" #include "config.h" #include "environment.h" #include "gettext.h" @@ -14,6 +13,7 @@ #include "string-list.h" #include "oid-array.h" #include "transport.h" +#include "trace2.h" #include "strbuf.h" #include "version.h" #include "protocol.h" diff --git a/convert.c b/convert.c index da06e2f51c..5a2ea5308d 100644 --- a/convert.c +++ b/convert.c @@ -1,5 +1,7 @@ #include "cache.h" +#include "advice.h" #include "config.h" +#include "convert.h" #include "gettext.h" #include "hex.h" #include "object-store.h" @@ -9,6 +11,7 @@ #include "sigchain.h" #include "pkt-line.h" #include "sub-process.h" +#include "trace.h" #include "utf8.h" #include "ll-merge.h" #include "wrapper.h" diff --git a/daemon.c b/daemon.c index db8a31a6ea..75c3c06457 100644 --- a/daemon.c +++ b/daemon.c @@ -4,6 +4,7 @@ #include "config.h" #include "environment.h" #include "pkt-line.h" +#include "protocol.h" #include "run-command.h" #include "setup.h" #include "strbuf.h" diff --git a/date.c b/date.c index 7c8650f799..e867ebf6b7 100644 --- a/date.c +++ b/date.c @@ -7,6 +7,7 @@ #include "cache.h" #include "date.h" #include "gettext.h" +#include "pager.h" /* * This is like mktime, but without normalization of tm_wday and tm_yday. diff --git a/delta-islands.c b/delta-islands.c index 40f2ccfb55..c824a5f6a4 100644 --- a/delta-islands.c +++ b/delta-islands.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "attr.h" #include "object.h" diff --git a/diff-lib.c b/diff-lib.c index 4169dd8cb1..d292405a26 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -8,11 +8,13 @@ #include "diffcore.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "revision.h" #include "cache-tree.h" #include "unpack-trees.h" #include "refs.h" #include "submodule.h" +#include "trace.h" #include "dir.h" #include "fsmonitor.h" #include "commit-reach.h" diff --git a/diff-no-index.c b/diff-no-index.c index 934a24bee5..4296940f90 100644 --- a/diff-no-index.c +++ b/diff-no-index.c @@ -4,7 +4,7 @@ * Copyright (c) 2008 by Junio C Hamano */ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "color.h" #include "commit.h" diff --git a/diff.c b/diff.c index 78b0fdd8ca..067846b13c 100644 --- a/diff.c +++ b/diff.c @@ -5,6 +5,7 @@ #include "abspath.h" #include "alloc.h" #include "config.h" +#include "convert.h" #include "environment.h" #include "gettext.h" #include "tempfile.h" @@ -28,11 +29,15 @@ #include "string-list.h" #include "strvec.h" #include "graph.h" +#include "oid-array.h" #include "packfile.h" +#include "pager.h" #include "parse-options.h" #include "help.h" #include "promisor-remote.h" #include "dir.h" +#include "object-file.h" +#include "object-name.h" #include "setup.h" #include "strmap.h" #include "wrapper.h" diff --git a/dir.c b/dir.c index 18fd14c46b..aa840995c4 100644 --- a/dir.c +++ b/dir.c @@ -9,9 +9,11 @@ #include "abspath.h" #include "alloc.h" #include "config.h" +#include "convert.h" #include "dir.h" #include "environment.h" #include "gettext.h" +#include "object-file.h" #include "object-store.h" #include "attr.h" #include "refs.h" @@ -23,6 +25,7 @@ #include "fsmonitor.h" #include "setup.h" #include "submodule-config.h" +#include "trace2.h" #include "wrapper.h" /* diff --git a/editor.c b/editor.c index d632d79066..b34e10606d 100644 --- a/editor.c +++ b/editor.c @@ -1,12 +1,16 @@ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" +#include "advice.h" #include "config.h" +#include "editor.h" #include "environment.h" #include "gettext.h" +#include "pager.h" #include "strbuf.h" #include "strvec.h" #include "run-command.h" #include "sigchain.h" +#include "wrapper.h" #ifndef DEFAULT_EDITOR #define DEFAULT_EDITOR "vi" @@ -129,3 +133,31 @@ int launch_sequence_editor(const char *path, struct strbuf *buffer, { return launch_specified_editor(git_sequence_editor(), path, buffer, env); } + +int strbuf_edit_interactively(struct strbuf *buffer, const char *path, + const char *const *env) +{ + char *path2 = NULL; + int fd, res = 0; + + if (!is_absolute_path(path)) + path = path2 = xstrdup(git_path("%s", path)); + + fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0666); + if (fd < 0) + res = error_errno(_("could not open '%s' for writing"), path); + else if (write_in_full(fd, buffer->buf, buffer->len) < 0) { + res = error_errno(_("could not write to '%s'"), path); + close(fd); + } else if (close(fd) < 0) + res = error_errno(_("could not close '%s'"), path); + else { + strbuf_reset(buffer); + if (launch_editor(path, buffer, env) < 0) + res = error_errno(_("could not edit '%s'"), path); + unlink(path); + } + + free(path2); + return res; +} diff --git a/editor.h b/editor.h new file mode 100644 index 0000000000..8016bb5e00 --- /dev/null +++ b/editor.h @@ -0,0 +1,34 @@ +#ifndef EDITOR_H +#define EDITOR_H + +struct strbuf; + +const char *git_editor(void); +const char *git_sequence_editor(void); +int is_terminal_dumb(void); + +/** + * Launch the user preferred editor to edit a file and fill the buffer + * with the file's contents upon the user completing their editing. The + * third argument can be used to set the environment which the editor is + * run in. If the buffer is NULL the editor is launched as usual but the + * file's contents are not read into the buffer upon completion. + */ +int launch_editor(const char *path, struct strbuf *buffer, + const char *const *env); + +int launch_sequence_editor(const char *path, struct strbuf *buffer, + const char *const *env); + +/* + * In contrast to `launch_editor()`, this function writes out the contents + * of the specified file first, then clears the `buffer`, then launches + * the editor and reads back in the file contents into the `buffer`. + * Finally, it deletes the temporary file. + * + * If `path` is relative, it refers to a file in the `.git` directory. + */ +int strbuf_edit_interactively(struct strbuf *buffer, const char *path, + const char *const *env); + +#endif diff --git a/environment.c b/environment.c index 63c697e7e9..8a96997539 100644 --- a/environment.c +++ b/environment.c @@ -10,6 +10,7 @@ #include "cache.h" #include "abspath.h" #include "branch.h" +#include "convert.h" #include "environment.h" #include "gettext.h" #include "repository.h" @@ -18,12 +19,14 @@ #include "fmt-merge-msg.h" #include "commit.h" #include "strvec.h" +#include "object-file.h" #include "object-store.h" #include "replace-object.h" #include "tmp-objdir.h" #include "chdir-notify.h" #include "setup.h" #include "shallow.h" +#include "trace.h" #include "wrapper.h" #include "write-or-die.h" @@ -56,7 +59,6 @@ size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE; size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT; size_t delta_base_cache_limit = 96 * 1024 * 1024; unsigned long big_file_threshold = 512 * 1024 * 1024; -int pager_use_color = 1; const char *editor_program; const char *askpass_program; const char *excludes_file; diff --git a/exec-cmd.c b/exec-cmd.c index fae0d4b244..6f61846389 100644 --- a/exec-cmd.c +++ b/exec-cmd.c @@ -5,6 +5,8 @@ #include "gettext.h" #include "quote.h" #include "strvec.h" +#include "trace.h" +#include "trace2.h" #if defined(RUNTIME_PREFIX) diff --git a/fetch-pack.c b/fetch-pack.c index 368f2ed25a..677102465a 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "repository.h" #include "config.h" @@ -17,6 +17,7 @@ #include "remote.h" #include "run-command.h" #include "connect.h" +#include "trace2.h" #include "transport.h" #include "version.h" #include "oid-array.h" diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c index 1886c92ddb..5af0d4715b 100644 --- a/fmt-merge-msg.c +++ b/fmt-merge-msg.c @@ -1,8 +1,9 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "config.h" #include "environment.h" #include "refs.h" +#include "object-name.h" #include "object-store.h" #include "diff.h" #include "diff-merges.h" diff --git a/fsck.c b/fsck.c index 8ef1b02234..adbe8bf59e 100644 --- a/fsck.c +++ b/fsck.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "hex.h" #include "object-store.h" diff --git a/fsmonitor.c b/fsmonitor.c index c956a347a2..28c083d4d8 100644 --- a/fsmonitor.c +++ b/fsmonitor.c @@ -7,6 +7,7 @@ #include "fsmonitor-ipc.h" #include "run-command.h" #include "strbuf.h" +#include "trace2.h" #define INDEX_EXTENSION_VERSION1 (1) #define INDEX_EXTENSION_VERSION2 (2) diff --git a/fsmonitor.h b/fsmonitor.h index 778707b131..c67e0ebc09 100644 --- a/fsmonitor.h +++ b/fsmonitor.h @@ -4,6 +4,7 @@ #include "cache.h" #include "dir.h" #include "fsmonitor-settings.h" +#include "trace.h" extern struct trace_key trace_fsmonitor; diff --git a/git-compat-util.h b/git-compat-util.h index 4a200a9fb4..5b2b99c17c 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -878,12 +878,6 @@ int git_lstat(const char *, struct stat *); #define pread git_pread ssize_t git_pread(int fd, void *buf, size_t count, off_t offset); #endif -/* - * Forward decl that will remind us if its twin in cache.h changes. - * This function is used in compat/pread.c. But we can't include - * cache.h there. - */ -ssize_t read_in_full(int fd, void *buf, size_t count); #ifdef NO_SETENV #define setenv gitsetenv diff --git a/zlib.c b/git-zlib.c similarity index 99% rename from zlib.c rename to git-zlib.c index d594cba3fc..d43bbeb6da 100644 --- a/zlib.c +++ b/git-zlib.c @@ -2,7 +2,8 @@ * zlib wrappers to make sure we don't silently miss errors * at init time. */ -#include "cache.h" +#include "git-compat-util.h" +#include "git-zlib.h" static const char *zerr_to_string(int status) { diff --git a/git-zlib.h b/git-zlib.h new file mode 100644 index 0000000000..d8a670aff9 --- /dev/null +++ b/git-zlib.h @@ -0,0 +1,28 @@ +#ifndef GIT_ZLIB_H +#define GIT_ZLIB_H + +typedef struct git_zstream { + z_stream z; + unsigned long avail_in; + unsigned long avail_out; + unsigned long total_in; + unsigned long total_out; + unsigned char *next_in; + unsigned char *next_out; +} git_zstream; + +void git_inflate_init(git_zstream *); +void git_inflate_init_gzip_only(git_zstream *); +void git_inflate_end(git_zstream *); +int git_inflate(git_zstream *, int flush); + +void git_deflate_init(git_zstream *, int level); +void git_deflate_init_gzip(git_zstream *, int level); +void git_deflate_init_raw(git_zstream *, int level); +void git_deflate_end(git_zstream *); +int git_deflate_abort(git_zstream *); +int git_deflate_end_gently(git_zstream *); +int git_deflate(git_zstream *, int flush); +unsigned long git_deflate_bound(git_zstream *, unsigned long); + +#endif /* GIT_ZLIB_H */ diff --git a/git.c b/git.c index de681f4f7c..45899be826 100644 --- a/git.c +++ b/git.c @@ -4,11 +4,14 @@ #include "exec-cmd.h" #include "gettext.h" #include "help.h" +#include "pager.h" #include "run-command.h" #include "alias.h" #include "replace-object.h" #include "setup.h" #include "shallow.h" +#include "trace.h" +#include "trace2.h" #define RUN_SETUP (1<<0) #define RUN_SETUP_GENTLY (1<<1) diff --git a/grep.c b/grep.c index b86462a12a..073559f2cd 100644 --- a/grep.c +++ b/grep.c @@ -11,6 +11,7 @@ #include "commit.h" #include "quote.h" #include "help.h" +#include "wrapper.h" static int grep_source_load(struct grep_source *gs); static int grep_source_is_binary(struct grep_source *gs, diff --git a/http-backend.c b/http-backend.c index 89aad1b42c..ac146d85c5 100644 --- a/http-backend.c +++ b/http-backend.c @@ -1,7 +1,8 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "config.h" #include "environment.h" +#include "git-zlib.h" #include "hex.h" #include "repository.h" #include "refs.h" diff --git a/http-fetch.c b/http-fetch.c index c874d3402d..fffda59267 100644 --- a/http-fetch.c +++ b/http-fetch.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "exec-cmd.h" #include "gettext.h" diff --git a/http-push.c b/http-push.c index 88b70f2c44..76ab5dbb09 100644 --- a/http-push.c +++ b/http-push.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "environment.h" #include "hex.h" #include "repository.h" diff --git a/http-walker.c b/http-walker.c index e5dadae377..bba306b2d5 100644 --- a/http-walker.c +++ b/http-walker.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "repository.h" #include "commit.h" #include "hex.h" diff --git a/http.c b/http.c index d5d82c5230..bb58bb3e6a 100644 --- a/http.c +++ b/http.c @@ -12,10 +12,12 @@ #include "version.h" #include "pkt-line.h" #include "gettext.h" +#include "trace.h" #include "transport.h" #include "packfile.h" #include "protocol.h" #include "string-list.h" +#include "object-file.h" #include "object-store.h" static struct trace_key trace_curl = TRACE_KEY_INIT(CURL); diff --git a/http.h b/http.h index 77c042706c..3a409bccd4 100644 --- a/http.h +++ b/http.h @@ -1,7 +1,9 @@ #ifndef HTTP_H #define HTTP_H -#include "cache.h" +struct packed_git; + +#include "git-zlib.h" #include #include diff --git a/list-objects-filter.c b/list-objects-filter.c index 298ca08711..5d270ce598 100644 --- a/list-objects-filter.c +++ b/list-objects-filter.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "dir.h" #include "gettext.h" @@ -15,6 +15,7 @@ #include "list-objects-filter-options.h" #include "oidmap.h" #include "oidset.h" +#include "object-name.h" #include "object-store.h" /* Remember to update object flag allocation in object.h */ diff --git a/list-objects.c b/list-objects.c index df18d10306..eecca721ac 100644 --- a/list-objects.c +++ b/list-objects.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "tag.h" #include "commit.h" #include "gettext.h" diff --git a/ll-merge.c b/ll-merge.c index 8be38d3bd4..28bc94c45d 100644 --- a/ll-merge.c +++ b/ll-merge.c @@ -6,6 +6,7 @@ #include "cache.h" #include "config.h" +#include "convert.h" #include "attr.h" #include "xdiff-interface.h" #include "run-command.h" diff --git a/log-tree.c b/log-tree.c index dbb088473e..143b86fecf 100644 --- a/log-tree.c +++ b/log-tree.c @@ -1,9 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" #include "commit-reach.h" #include "config.h" #include "diff.h" #include "environment.h" #include "hex.h" +#include "object-name.h" #include "object-store.h" #include "repository.h" #include "tmp-objdir.h" diff --git a/mailmap.c b/mailmap.c index 74fd9db448..5dc5223c43 100644 --- a/mailmap.c +++ b/mailmap.c @@ -1,7 +1,8 @@ -#include "cache.h" +#include "git-compat-util.h" #include "environment.h" #include "string-list.h" #include "mailmap.h" +#include "object-name.h" #include "object-store.h" #include "setup.h" diff --git a/mailmap.h b/mailmap.h index 7e99fccb46..0f8fd2c586 100644 --- a/mailmap.h +++ b/mailmap.h @@ -3,6 +3,9 @@ struct string_list; +extern const char *git_mailmap_file; +extern const char *git_mailmap_blob; + int read_mailmap(struct string_list *map); void clear_mailmap(struct string_list *map); diff --git a/merge-ort.c b/merge-ort.c index 5bf64354d1..2c6a9ed9a4 100644 --- a/merge-ort.c +++ b/merge-ort.c @@ -31,12 +31,16 @@ #include "hex.h" #include "entry.h" #include "ll-merge.h" +#include "mem-pool.h" +#include "object-name.h" #include "object-store.h" +#include "oid-array.h" #include "promisor-remote.h" #include "revision.h" #include "strmap.h" #include "submodule-config.h" #include "submodule.h" +#include "trace2.h" #include "tree.h" #include "unpack-trees.h" #include "xdiff-interface.h" diff --git a/merge-recursive.c b/merge-recursive.c index ed5534eb57..9875bdb11c 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -22,6 +22,8 @@ #include "hex.h" #include "ll-merge.h" #include "lockfile.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "repository.h" #include "revision.h" diff --git a/midx.c b/midx.c index 9af3e5de88..2d0da57328 100644 --- a/midx.c +++ b/midx.c @@ -8,6 +8,7 @@ #include "hex.h" #include "lockfile.h" #include "packfile.h" +#include "object-file.h" #include "object-store.h" #include "hash-lookup.h" #include "midx.h" diff --git a/name-hash.c b/name-hash.c index 2c2861efd1..fb13716e43 100644 --- a/name-hash.c +++ b/name-hash.c @@ -9,6 +9,7 @@ #include "environment.h" #include "gettext.h" #include "thread-utils.h" +#include "trace.h" #include "trace2.h" #include "sparse-index.h" diff --git a/notes-merge.c b/notes-merge.c index c40107c3aa..233e49e319 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -1,7 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" +#include "advice.h" #include "commit.h" #include "gettext.h" #include "refs.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "repository.h" #include "diff.h" @@ -13,6 +16,7 @@ #include "notes.h" #include "notes-merge.h" #include "strbuf.h" +#include "trace.h" #include "notes-utils.h" #include "commit-reach.h" #include "wrapper.h" diff --git a/notes.c b/notes.c index 45fb7f22d1..02f1aa39ae 100644 --- a/notes.c +++ b/notes.c @@ -1,8 +1,9 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "environment.h" #include "hex.h" #include "notes.h" +#include "object-name.h" #include "object-store.h" #include "blob.h" #include "tree.h" diff --git a/object-file.c b/object-file.c index 76b22ca75c..8163ddbadd 100644 --- a/object-file.c +++ b/object-file.c @@ -10,6 +10,7 @@ #include "abspath.h" #include "alloc.h" #include "config.h" +#include "convert.h" #include "environment.h" #include "gettext.h" #include "hex.h" @@ -35,6 +36,7 @@ #include "mergesort.h" #include "quote.h" #include "packfile.h" +#include "object-file.h" #include "object-store.h" #include "promisor-remote.h" #include "setup.h" diff --git a/object-file.h b/object-file.h new file mode 100644 index 0000000000..e0cfc3a5db --- /dev/null +++ b/object-file.h @@ -0,0 +1,129 @@ +#ifndef OBJECT_FILE_H +#define OBJECT_FILE_H + +#include "git-zlib.h" +#include "object.h" + +/* + * Set this to 0 to prevent oid_object_info_extended() from fetching missing + * blobs. This has a difference only if extensions.partialClone is set. + * + * Its default value is 1. + */ +extern int fetch_if_missing; + +#define HASH_WRITE_OBJECT 1 +#define HASH_FORMAT_CHECK 2 +#define HASH_RENORMALIZE 4 +#define HASH_SILENT 8 +int index_fd(struct index_state *istate, struct object_id *oid, int fd, struct stat *st, enum object_type type, const char *path, unsigned flags); +int index_path(struct index_state *istate, struct object_id *oid, const char *path, struct stat *st, unsigned flags); + +/* + * Create the directory containing the named path, using care to be + * somewhat safe against races. Return one of the scld_error values to + * indicate success/failure. On error, set errno to describe the + * problem. + * + * SCLD_VANISHED indicates that one of the ancestor directories of the + * path existed at one point during the function call and then + * suddenly vanished, probably because another process pruned the + * directory while we were working. To be robust against this kind of + * race, callers might want to try invoking the function again when it + * returns SCLD_VANISHED. + * + * safe_create_leading_directories() temporarily changes path while it + * is working but restores it before returning. + * safe_create_leading_directories_const() doesn't modify path, even + * temporarily. Both these variants adjust the permissions of the + * created directories to honor core.sharedRepository, so they are best + * suited for files inside the git dir. For working tree files, use + * safe_create_leading_directories_no_share() instead, as it ignores + * the core.sharedRepository setting. + */ +enum scld_error { + SCLD_OK = 0, + SCLD_FAILED = -1, + SCLD_PERMS = -2, + SCLD_EXISTS = -3, + SCLD_VANISHED = -4 +}; +enum scld_error safe_create_leading_directories(char *path); +enum scld_error safe_create_leading_directories_const(const char *path); +enum scld_error safe_create_leading_directories_no_share(char *path); + +int mkdir_in_gitdir(const char *path); + +int git_open_cloexec(const char *name, int flags); +#define git_open(name) git_open_cloexec(name, O_RDONLY) + +/** + * unpack_loose_header() initializes the data stream needed to unpack + * a loose object header. + * + * Returns: + * + * - ULHR_OK on success + * - ULHR_BAD on error + * - ULHR_TOO_LONG if the header was too long + * + * It will only parse up to MAX_HEADER_LEN bytes unless an optional + * "hdrbuf" argument is non-NULL. This is intended for use with + * OBJECT_INFO_ALLOW_UNKNOWN_TYPE to extract the bad type for (error) + * reporting. The full header will be extracted to "hdrbuf" for use + * with parse_loose_header(), ULHR_TOO_LONG will still be returned + * from this function to indicate that the header was too long. + */ +enum unpack_loose_header_result { + ULHR_OK, + ULHR_BAD, + ULHR_TOO_LONG, +}; +enum unpack_loose_header_result unpack_loose_header(git_zstream *stream, + unsigned char *map, + unsigned long mapsize, + void *buffer, + unsigned long bufsiz, + struct strbuf *hdrbuf); + +/** + * parse_loose_header() parses the starting " \0" of an + * object. If it doesn't follow that format -1 is returned. To check + * the validity of the populate the "typep" in the "struct + * object_info". It will be OBJ_BAD if the object type is unknown. The + * parsed can be retrieved via "oi->sizep", and from there + * passed to unpack_loose_rest(). + */ +struct object_info; +int parse_loose_header(const char *hdr, struct object_info *oi); + +/** + * With in-core object data in "buf", rehash it to make sure the + * object name actually matches "oid" to detect object corruption. + * + * A negative value indicates an error, usually that the OID is not + * what we expected, but it might also indicate another error. + */ +int check_object_signature(struct repository *r, const struct object_id *oid, + void *map, unsigned long size, + enum object_type type); + +/** + * A streaming version of check_object_signature(). + * Try reading the object named with "oid" using + * the streaming interface and rehash it to do the same. + */ +int stream_object_signature(struct repository *r, const struct object_id *oid); + +int finalize_object_file(const char *tmpfile, const char *filename); + +/* Helper to check and "touch" a file */ +int check_and_freshen_file(const char *fn, int freshen); + +void *read_object_with_reference(struct repository *r, + const struct object_id *oid, + enum object_type required_type, + unsigned long *size, + struct object_id *oid_ret); + +#endif /* OBJECT_FILE_H */ diff --git a/object-name.c b/object-name.c index f1edc0035b..538e8a8f62 100644 --- a/object-name.c +++ b/object-name.c @@ -1,4 +1,6 @@ #include "cache.h" +#include "object-name.h" +#include "advice.h" #include "config.h" #include "environment.h" #include "gettext.h" diff --git a/object-name.h b/object-name.h new file mode 100644 index 0000000000..1d63698f42 --- /dev/null +++ b/object-name.h @@ -0,0 +1,121 @@ +#ifndef OBJECT_NAME_H +#define OBJECT_NAME_H + +#include "object.h" +#include "strbuf.h" + +struct object_id; +struct repository; + +struct object_context { + unsigned short mode; + /* + * symlink_path is only used by get_tree_entry_follow_symlinks, + * and only for symlinks that point outside the repository. + */ + struct strbuf symlink_path; + /* + * If GET_OID_RECORD_PATH is set, this will record path (if any) + * found when resolving the name. The caller is responsible for + * releasing the memory. + */ + char *path; +}; + +/* + * Return an abbreviated sha1 unique within this repository's object database. + * The result will be at least `len` characters long, and will be NUL + * terminated. + * + * The non-`_r` version returns a static buffer which remains valid until 4 + * more calls to repo_find_unique_abbrev are made. + * + * The `_r` variant writes to a buffer supplied by the caller, which must be at + * least `GIT_MAX_HEXSZ + 1` bytes. The return value is the number of bytes + * written (excluding the NUL terminator). + * + * Note that while this version avoids the static buffer, it is not fully + * reentrant, as it calls into other non-reentrant git code. + */ +const char *repo_find_unique_abbrev(struct repository *r, const struct object_id *oid, int len); +int repo_find_unique_abbrev_r(struct repository *r, char *hex, const struct object_id *oid, int len); + +int repo_get_oid(struct repository *r, const char *str, struct object_id *oid); +__attribute__((format (printf, 2, 3))) +int get_oidf(struct object_id *oid, const char *fmt, ...); +int repo_get_oid_commit(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_committish(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_tree(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_treeish(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_blob(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_mb(struct repository *r, const char *str, struct object_id *oid); +void maybe_die_on_misspelt_object_name(struct repository *repo, + const char *name, + const char *prefix); +enum get_oid_result get_oid_with_context(struct repository *repo, const char *str, + unsigned flags, struct object_id *oid, + struct object_context *oc); + + +typedef int each_abbrev_fn(const struct object_id *oid, void *); +int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *); + +int set_disambiguate_hint_config(const char *var, const char *value); + +/* + * This reads short-hand syntax that not only evaluates to a commit + * object name, but also can act as if the end user spelled the name + * of the branch from the command line. + * + * - "@{-N}" finds the name of the Nth previous branch we were on, and + * places the name of the branch in the given buf and returns the + * number of characters parsed if successful. + * + * - "@{upstream}" finds the name of the other ref that + * is configured to merge with (missing defaults + * to the current branch), and places the name of the branch in the + * given buf and returns the number of characters parsed if + * successful. + * + * If the input is not of the accepted format, it returns a negative + * number to signal an error. + * + * If the input was ok but there are not N branch switches in the + * reflog, it returns 0. + */ +#define INTERPRET_BRANCH_LOCAL (1<<0) +#define INTERPRET_BRANCH_REMOTE (1<<1) +#define INTERPRET_BRANCH_HEAD (1<<2) +struct interpret_branch_name_options { + /* + * If "allowed" is non-zero, it is a treated as a bitfield of allowable + * expansions: local branches ("refs/heads/"), remote branches + * ("refs/remotes/"), or "HEAD". If no "allowed" bits are set, any expansion is + * allowed, even ones to refs outside of those namespaces. + */ + unsigned allowed; + + /* + * If ^{upstream} or ^{push} (or equivalent) is requested, and the + * branch in question does not have such a reference, return -1 instead + * of die()-ing. + */ + unsigned nonfatal_dangling_mark : 1; +}; +int repo_interpret_branch_name(struct repository *r, + const char *str, int len, + struct strbuf *buf, + const struct interpret_branch_name_options *options); + +struct object *repo_peel_to_type(struct repository *r, + const char *name, int namelen, + struct object *o, enum object_type); + +/* Convert to/from hex/sha1 representation */ +#define MINIMUM_ABBREV minimum_abbrev +#define DEFAULT_ABBREV default_abbrev + +/* used when the code does not know or care what the default abbrev is */ +#define FALLBACK_DEFAULT_ABBREV 7 + +#endif /* OBJECT_NAME_H */ diff --git a/object.c b/object.c index 45c9721b8c..6d4ef1524d 100644 --- a/object.c +++ b/object.c @@ -3,6 +3,7 @@ #include "hex.h" #include "object.h" #include "replace-object.h" +#include "object-file.h" #include "object-store.h" #include "blob.h" #include "tree.h" diff --git a/object.h b/object.h index fc45b158da..96e52e24fb 100644 --- a/object.h +++ b/object.h @@ -101,6 +101,50 @@ enum object_type { OBJ_MAX }; +/* unknown mode (impossible combination S_IFIFO|S_IFCHR) */ +#define S_IFINVALID 0030000 + +/* + * A "directory link" is a link to another git directory. + * + * The value 0160000 is not normally a valid mode, and + * also just happens to be S_IFDIR + S_IFLNK + */ +#define S_IFGITLINK 0160000 +#define S_ISGITLINK(m) (((m) & S_IFMT) == S_IFGITLINK) + +#define S_ISSPARSEDIR(m) ((m) == S_IFDIR) + +static inline enum object_type object_type(unsigned int mode) +{ + return S_ISDIR(mode) ? OBJ_TREE : + S_ISGITLINK(mode) ? OBJ_COMMIT : + OBJ_BLOB; +} + +#define ce_permissions(mode) (((mode) & 0100) ? 0755 : 0644) +static inline unsigned int create_ce_mode(unsigned int mode) +{ + if (S_ISLNK(mode)) + return S_IFLNK; + if (S_ISSPARSEDIR(mode)) + return S_IFDIR; + if (S_ISDIR(mode) || S_ISGITLINK(mode)) + return S_IFGITLINK; + return S_IFREG | ce_permissions(mode); +} + +static inline unsigned int canon_mode(unsigned int mode) +{ + if (S_ISREG(mode)) + return S_IFREG | ce_permissions(mode); + if (S_ISLNK(mode)) + return S_IFLNK; + if (S_ISDIR(mode)) + return S_IFDIR; + return S_IFGITLINK; +} + /* * The object type is stored in 3 bits. */ diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c index 7f5f489beb..faf67c94d3 100644 --- a/pack-bitmap-write.c +++ b/pack-bitmap-write.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "environment.h" #include "gettext.h" diff --git a/pack-bitmap.c b/pack-bitmap.c index b2e7d06d60..295b8abc19 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "commit.h" #include "gettext.h" @@ -15,6 +15,8 @@ #include "pack-objects.h" #include "packfile.h" #include "repository.h" +#include "trace2.h" +#include "object-file.h" #include "object-store.h" #include "list-objects-filter-options.h" #include "midx.h" diff --git a/pack-check.c b/pack-check.c index 6974e40a95..049f2f0bfc 100644 --- a/pack-check.c +++ b/pack-check.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "environment.h" #include "hex.h" #include "repository.h" @@ -6,6 +6,7 @@ #include "pack-revindex.h" #include "progress.h" #include "packfile.h" +#include "object-file.h" #include "object-store.h" struct idx_entry { diff --git a/pack-mtimes.c b/pack-mtimes.c index afed632190..020a37f8fe 100644 --- a/pack-mtimes.c +++ b/pack-mtimes.c @@ -1,6 +1,7 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "pack-mtimes.h" +#include "object-file.h" #include "object-store.h" #include "packfile.h" diff --git a/pack-revindex.c b/pack-revindex.c index 03c7e81f9d..4d9bb41b4d 100644 --- a/pack-revindex.c +++ b/pack-revindex.c @@ -1,8 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "pack-revindex.h" +#include "object-file.h" #include "object-store.h" #include "packfile.h" +#include "trace2.h" #include "config.h" #include "midx.h" diff --git a/pack-write.c b/pack-write.c index f171405495..9c37121be3 100644 --- a/pack-write.c +++ b/pack-write.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "environment.h" #include "gettext.h" #include "hex.h" @@ -9,6 +9,8 @@ #include "pack-mtimes.h" #include "oidmap.h" #include "pack-objects.h" +#include "pack-revindex.h" +#include "wrapper.h" void reset_pack_idx_option(struct pack_idx_option *opts) { diff --git a/packfile.c b/packfile.c index b120405ccc..9ae2278c22 100644 --- a/packfile.c +++ b/packfile.c @@ -15,11 +15,14 @@ #include "commit.h" #include "object.h" #include "tag.h" +#include "trace.h" #include "tree-walk.h" #include "tree.h" +#include "object-file.h" #include "object-store.h" #include "midx.h" #include "commit-graph.h" +#include "pack-revindex.h" #include "promisor-remote.h" #include "wrapper.h" diff --git a/pager.c b/pager.c index b66bbff278..63055d0873 100644 --- a/pager.c +++ b/pager.c @@ -1,9 +1,13 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" +#include "editor.h" +#include "pager.h" #include "run-command.h" #include "sigchain.h" #include "alias.h" +int pager_use_color = 1; + #ifndef DEFAULT_PAGER #define DEFAULT_PAGER "less" #endif diff --git a/pager.h b/pager.h new file mode 100644 index 0000000000..b77433026d --- /dev/null +++ b/pager.h @@ -0,0 +1,17 @@ +#ifndef PAGER_H +#define PAGER_H + +struct child_process; + +const char *git_pager(int stdout_is_tty); +void setup_pager(void); +int pager_in_use(void); +int term_columns(void); +void term_clear_line(void); +int decimal_width(uintmax_t); +int check_pager_config(const char *cmd); +void prepare_pager_args(struct child_process *, const char *pager); + +extern int pager_use_color; + +#endif /* PAGER_H */ diff --git a/parse-options-cb.c b/parse-options-cb.c index 10f2f75e83..298decf48f 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -1,11 +1,11 @@ #include "git-compat-util.h" #include "parse-options.h" #include "branch.h" -#include "cache.h" #include "commit.h" #include "color.h" #include "environment.h" #include "gettext.h" +#include "object-name.h" #include "string-list.h" #include "strvec.h" #include "oid-array.h" diff --git a/path.c b/path.c index dff215ac69..7c1cd8182a 100644 --- a/path.c +++ b/path.c @@ -18,6 +18,7 @@ #include "object-store.h" #include "lockfile.h" #include "exec-cmd.h" +#include "wrapper.h" static int get_st_mode_bits(const char *path, int *mode) { diff --git a/pkt-line.c b/pkt-line.c index 36ae0fea4a..3561d85358 100644 --- a/pkt-line.c +++ b/pkt-line.c @@ -3,6 +3,7 @@ #include "gettext.h" #include "hex.h" #include "run-command.h" +#include "trace.h" #include "wrapper.h" #include "write-or-die.h" diff --git a/preload-index.c b/preload-index.c index 52544d004e..4abf9c983b 100644 --- a/preload-index.c +++ b/preload-index.c @@ -11,6 +11,7 @@ #include "progress.h" #include "thread-utils.h" #include "repository.h" +#include "trace2.h" /* * Mostly randomly chosen maximum thread counts: we diff --git a/pretty.c b/pretty.c index 76fc4f61e4..0bb938021b 100644 --- a/pretty.c +++ b/pretty.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "config.h" #include "commit.h" @@ -7,6 +7,7 @@ #include "hex.h" #include "utf8.h" #include "diff.h" +#include "pager.h" #include "revision.h" #include "string-list.h" #include "mailmap.h" diff --git a/progress.c b/progress.c index 44c784d75f..72d5e0c73c 100644 --- a/progress.c +++ b/progress.c @@ -9,10 +9,12 @@ */ #define GIT_TEST_PROGRESS_ONLY -#include "cache.h" +#include "git-compat-util.h" +#include "pager.h" #include "progress.h" #include "strbuf.h" #include "trace.h" +#include "trace2.h" #include "utf8.h" #include "config.h" diff --git a/promisor-remote.c b/promisor-remote.c index a8dbb788e8..1adcd6fb0a 100644 --- a/promisor-remote.c +++ b/promisor-remote.c @@ -1,9 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "hex.h" #include "object-store.h" #include "promisor-remote.h" #include "config.h" +#include "trace2.h" #include "transport.h" #include "strvec.h" #include "packfile.h" diff --git a/protocol.c b/protocol.c index bdb32e1eeb..079ba75acf 100644 --- a/protocol.c +++ b/protocol.c @@ -1,7 +1,8 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "environment.h" #include "protocol.h" +#include "trace2.h" static enum protocol_version parse_protocol_version(const char *value) { diff --git a/protocol.h b/protocol.h index cef1a4a01c..de66bf80f8 100644 --- a/protocol.h +++ b/protocol.h @@ -1,6 +1,27 @@ #ifndef PROTOCOL_H #define PROTOCOL_H +/* + * Intensive research over the course of many years has shown that + * port 9418 is totally unused by anything else. Or + * + * Your search - "port 9418" - did not match any documents. + * + * as www.google.com puts it. + * + * This port has been properly assigned for git use by IANA: + * git (Assigned-9418) [I06-050728-0001]. + * + * git 9418/tcp git pack transfer service + * git 9418/udp git pack transfer service + * + * with Linus Torvalds as the point of + * contact. September 2005. + * + * See http://www.iana.org/assignments/port-numbers + */ +#define DEFAULT_GIT_PORT 9418 + enum protocol_version { protocol_unknown_version = -1, protocol_v0 = 0, diff --git a/quote.c b/quote.c index 7ccb5a06cd..43c739671e 100644 --- a/quote.c +++ b/quote.c @@ -1,5 +1,6 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" +#include "path.h" #include "quote.h" #include "strbuf.h" #include "strvec.h" diff --git a/quote.h b/quote.h index 87ff458b06..0300c29104 100644 --- a/quote.h +++ b/quote.h @@ -3,6 +3,8 @@ struct strbuf; +extern int quote_path_fully; + /* Help to copy the thing properly quoted for the shell safety. * any single quote is replaced with '\'', any exclamation point * is replaced with '\!', and the whole thing is enclosed in a diff --git a/range-diff.c b/range-diff.c index d1ed3b8ee5..a1e0cffb9f 100644 --- a/range-diff.c +++ b/range-diff.c @@ -2,6 +2,7 @@ #include "environment.h" #include "gettext.h" #include "range-diff.h" +#include "object-name.h" #include "string-list.h" #include "run-command.h" #include "strvec.h" @@ -10,6 +11,7 @@ #include "linear-assignment.h" #include "diffcore.h" #include "commit.h" +#include "pager.h" #include "pretty.h" #include "userdiff.h" #include "apply.h" diff --git a/read-cache.c b/read-cache.c index 2a49178633..e919af3c77 100644 --- a/read-cache.c +++ b/read-cache.c @@ -14,15 +14,20 @@ #include "cache-tree.h" #include "refs.h" #include "dir.h" +#include "object-file.h" #include "object-store.h" +#include "oid-array.h" #include "tree.h" #include "commit.h" #include "blob.h" #include "environment.h" #include "gettext.h" +#include "mem-pool.h" +#include "object-name.h" #include "resolve-undo.h" #include "run-command.h" #include "strbuf.h" +#include "trace2.h" #include "varint.h" #include "split-index.h" #include "utf8.h" diff --git a/rebase-interactive.c b/rebase-interactive.c index 79ed61b9fa..789f407361 100644 --- a/rebase-interactive.c +++ b/rebase-interactive.c @@ -1,5 +1,6 @@ -#include "cache.h" +#include "git-compat-util.h" #include "commit.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "sequencer.h" @@ -8,6 +9,7 @@ #include "commit-slab.h" #include "config.h" #include "dir.h" +#include "object-name.h" #include "wrapper.h" static const char edit_todo_list_advice[] = diff --git a/ref-filter.c b/ref-filter.c index 72175612f3..10aab14f03 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -6,7 +6,9 @@ #include "parse-options.h" #include "refs.h" #include "wildmatch.h" +#include "object-name.h" #include "object-store.h" +#include "oid-array.h" #include "repository.h" #include "commit.h" #include "remote.h" diff --git a/refs.c b/refs.c index 0f369dbde7..d2a98e1c21 100644 --- a/refs.c +++ b/refs.c @@ -2,7 +2,8 @@ * The backend-independent part of the reference module. */ -#include "cache.h" +#include "git-compat-util.h" +#include "advice.h" #include "alloc.h" #include "config.h" #include "environment.h" @@ -15,6 +16,7 @@ #include "refs/refs-internal.h" #include "run-command.h" #include "hook.h" +#include "object-name.h" #include "object-store.h" #include "object.h" #include "tag.h" diff --git a/refs/files-backend.c b/refs/files-backend.c index e6a6971381..d0581ee41a 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -12,6 +12,7 @@ #include "../dir-iterator.h" #include "../lockfile.h" #include "../object.h" +#include "../object-file.h" #include "../dir.h" #include "../chdir-notify.h" #include "../setup.h" diff --git a/refs/packed-backend.c b/refs/packed-backend.c index 1eba1015dd..2333ed5a1f 100644 --- a/refs/packed-backend.c +++ b/refs/packed-backend.c @@ -9,6 +9,7 @@ #include "../iterator.h" #include "../lockfile.h" #include "../chdir-notify.h" +#include "../wrapper.h" #include "../write-or-die.h" enum mmap_strategy { diff --git a/refs/ref-cache.h b/refs/ref-cache.h index 850d9d3744..cf4ad9070b 100644 --- a/refs/ref-cache.h +++ b/refs/ref-cache.h @@ -1,7 +1,7 @@ #ifndef REFS_REF_CACHE_H #define REFS_REF_CACHE_H -#include "cache.h" +#include "hash.h" struct ref_dir; struct ref_store; diff --git a/remote-curl.c b/remote-curl.c index db3bc431fc..acf7b2bb40 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -21,6 +21,7 @@ #include "setup.h" #include "protocol.h" #include "quote.h" +#include "trace2.h" #include "transport.h" #include "write-or-die.h" diff --git a/remote.c b/remote.c index 3a831cb530..0764fca0db 100644 --- a/remote.c +++ b/remote.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "alloc.h" #include "config.h" @@ -9,6 +9,7 @@ #include "urlmatch.h" #include "refs.h" #include "refspec.h" +#include "object-name.h" #include "object-store.h" #include "commit.h" #include "diff.h" diff --git a/repository.c b/repository.c index f6d9f5db08..c53e480e32 100644 --- a/repository.c +++ b/repository.c @@ -14,6 +14,7 @@ #include "setup.h" #include "submodule-config.h" #include "sparse-index.h" +#include "trace2.h" #include "promisor-remote.h" /* The main repository */ diff --git a/rerere.c b/rerere.c index 5516e336d0..7abc94bf44 100644 --- a/rerere.c +++ b/rerere.c @@ -1,4 +1,4 @@ -#include "git-compat-util.h" +#include "cache.h" #include "abspath.h" #include "alloc.h" #include "config.h" @@ -13,6 +13,7 @@ #include "ll-merge.h" #include "attr.h" #include "pathspec.h" +#include "object-file.h" #include "object-store.h" #include "hash-lookup.h" #include "strmap.h" diff --git a/reset.c b/reset.c index ab300923e0..48da0adf85 100644 --- a/reset.c +++ b/reset.c @@ -3,6 +3,7 @@ #include "gettext.h" #include "hex.h" #include "lockfile.h" +#include "object-name.h" #include "refs.h" #include "reset.h" #include "run-command.h" diff --git a/resolve-undo.h b/resolve-undo.h index 2b3f0f901e..d1ea972771 100644 --- a/resolve-undo.h +++ b/resolve-undo.h @@ -1,7 +1,12 @@ #ifndef RESOLVE_UNDO_H #define RESOLVE_UNDO_H -#include "cache.h" +struct cache_entry; +struct index_state; +struct pathspec; +struct string_list; + +#include "hash.h" struct resolve_undo_info { unsigned int mode[3]; diff --git a/revision.c b/revision.c index 106ca1ce6c..b33cc1d106 100644 --- a/revision.c +++ b/revision.c @@ -1,9 +1,11 @@ -#include "git-compat-util.h" +#include "cache.h" #include "alloc.h" #include "config.h" #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" +#include "object-file.h" #include "object-store.h" #include "tag.h" #include "blob.h" @@ -31,6 +33,7 @@ #include "worktree.h" #include "setup.h" #include "strvec.h" +#include "trace2.h" #include "commit-reach.h" #include "commit-graph.h" #include "prio-queue.h" diff --git a/run-command.c b/run-command.c index 614d48fa9a..e64bb08a5b 100644 --- a/run-command.c +++ b/run-command.c @@ -8,6 +8,8 @@ #include "thread-utils.h" #include "strbuf.h" #include "string-list.h" +#include "trace.h" +#include "trace2.h" #include "quote.h" #include "config.h" #include "packfile.h" diff --git a/scalar.c b/scalar.c index de07c37d21..1326e1f608 100644 --- a/scalar.c +++ b/scalar.c @@ -2,7 +2,7 @@ * The Scalar command-line interface. */ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "gettext.h" #include "parse-options.h" @@ -16,6 +16,7 @@ #include "packfile.h" #include "help.h" #include "setup.h" +#include "trace2.h" static void setup_enlistment_directory(int argc, const char **argv, const char * const *usagestr, diff --git a/send-pack.c b/send-pack.c index f81bbb28d7..7ebd1b3507 100644 --- a/send-pack.c +++ b/send-pack.c @@ -14,6 +14,7 @@ #include "quote.h" #include "transport.h" #include "version.h" +#include "wrapper.h" #include "oid-array.h" #include "gpg-interface.h" #include "shallow.h" diff --git a/sequencer.c b/sequencer.c index d2c7698c48..c88d1d9553 100644 --- a/sequencer.c +++ b/sequencer.c @@ -1,5 +1,6 @@ #include "cache.h" #include "abspath.h" +#include "advice.h" #include "alloc.h" #include "config.h" #include "environment.h" @@ -7,8 +8,11 @@ #include "hex.h" #include "lockfile.h" #include "dir.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "object.h" +#include "pager.h" #include "commit.h" #include "sequencer.h" #include "tag.h" diff --git a/server-info.c b/server-info.c index 355b6e01a5..68098ddd1a 100644 --- a/server-info.c +++ b/server-info.c @@ -9,6 +9,7 @@ #include "commit.h" #include "tag.h" #include "packfile.h" +#include "object-file.h" #include "object-store.h" #include "strbuf.h" #include "wrapper.h" diff --git a/setup.c b/setup.c index 6c5b85e96c..59abc16ba6 100644 --- a/setup.c +++ b/setup.c @@ -1,7 +1,8 @@ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "environment.h" #include "gettext.h" +#include "object-name.h" #include "repository.h" #include "config.h" #include "dir.h" @@ -10,6 +11,8 @@ #include "chdir-notify.h" #include "promisor-remote.h" #include "quote.h" +#include "trace2.h" +#include "wrapper.h" static int inside_git_dir = -1; static int inside_work_tree = -1; diff --git a/shallow.c b/shallow.c index b4d726bd59..128f56179e 100644 --- a/shallow.c +++ b/shallow.c @@ -17,6 +17,7 @@ #include "list-objects.h" #include "commit-reach.h" #include "shallow.h" +#include "trace.h" #include "wrapper.h" void set_alternate_shallow_file(struct repository *r, const char *path, int override) diff --git a/sideband.c b/sideband.c index 0af582858b..6cbfd391c4 100644 --- a/sideband.c +++ b/sideband.c @@ -1,6 +1,7 @@ -#include "cache.h" +#include "git-compat-util.h" #include "color.h" #include "config.h" +#include "editor.h" #include "gettext.h" #include "sideband.h" #include "help.h" diff --git a/split-index.c b/split-index.c index c98807c655..5602b74994 100644 --- a/split-index.c +++ b/split-index.c @@ -1,6 +1,7 @@ #include "cache.h" #include "alloc.h" #include "gettext.h" +#include "mem-pool.h" #include "split-index.h" #include "ewah/ewok.h" diff --git a/split-index.h b/split-index.h index 7a435ca2c9..1a153f47ba 100644 --- a/split-index.h +++ b/split-index.h @@ -1,7 +1,7 @@ #ifndef SPLIT_INDEX_H #define SPLIT_INDEX_H -#include "cache.h" +#include "hash.h" struct index_state; struct strbuf; diff --git a/strbuf.c b/strbuf.c index 70a83e7980..729378ec82 100644 --- a/strbuf.c +++ b/strbuf.c @@ -1,9 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "alloc.h" #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "refs.h" #include "string-list.h" #include "utf8.h" @@ -1179,34 +1180,6 @@ int strbuf_normalize_path(struct strbuf *src) return 0; } -int strbuf_edit_interactively(struct strbuf *buffer, const char *path, - const char *const *env) -{ - char *path2 = NULL; - int fd, res = 0; - - if (!is_absolute_path(path)) - path = path2 = xstrdup(git_path("%s", path)); - - fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0666); - if (fd < 0) - res = error_errno(_("could not open '%s' for writing"), path); - else if (write_in_full(fd, buffer->buf, buffer->len) < 0) { - res = error_errno(_("could not write to '%s'"), path); - close(fd); - } else if (close(fd) < 0) - res = error_errno(_("could not close '%s'"), path); - else { - strbuf_reset(buffer); - if (launch_editor(path, buffer, env) < 0) - res = error_errno(_("could not edit '%s'"), path); - unlink(path); - } - - free(path2); - return res; -} - void strbuf_strip_file_from_path(struct strbuf *sb) { char *path_sep = find_last_dir_sep(sb->buf); diff --git a/strbuf.h b/strbuf.h index b980f9edc6..3dfeadb44c 100644 --- a/strbuf.h +++ b/strbuf.h @@ -640,30 +640,6 @@ void strbuf_repo_add_unique_abbrev(struct strbuf *sb, struct repository *repo, void strbuf_add_unique_abbrev(struct strbuf *sb, const struct object_id *oid, int abbrev_len); -/** - * Launch the user preferred editor to edit a file and fill the buffer - * with the file's contents upon the user completing their editing. The - * third argument can be used to set the environment which the editor is - * run in. If the buffer is NULL the editor is launched as usual but the - * file's contents are not read into the buffer upon completion. - */ -int launch_editor(const char *path, struct strbuf *buffer, - const char *const *env); - -int launch_sequence_editor(const char *path, struct strbuf *buffer, - const char *const *env); - -/* - * In contrast to `launch_editor()`, this function writes out the contents - * of the specified file first, then clears the `buffer`, then launches - * the editor and reads back in the file contents into the `buffer`. - * Finally, it deletes the temporary file. - * - * If `path` is relative, it refers to a file in the `.git` directory. - */ -int strbuf_edit_interactively(struct strbuf *buffer, const char *path, - const char *const *env); - /* * Remove the filename from the provided path string. If the path * contains a trailing separator, then the path is considered a directory diff --git a/streaming.c b/streaming.c index 024fd796b7..21e39585e8 100644 --- a/streaming.c +++ b/streaming.c @@ -1,10 +1,12 @@ /* * Copyright (c) 2011, Google Inc. */ -#include "cache.h" +#include "git-compat-util.h" +#include "convert.h" #include "environment.h" #include "streaming.h" #include "repository.h" +#include "object-file.h" #include "object-store.h" #include "replace-object.h" #include "packfile.h" diff --git a/submodule-config.c b/submodule-config.c index ecf0fcf007..7fc0812b64 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "dir.h" #include "environment.h" @@ -9,6 +9,7 @@ #include "submodule-config.h" #include "submodule.h" #include "strbuf.h" +#include "object-name.h" #include "object-store.h" #include "parse-options.h" #include "tree-walk.h" diff --git a/submodule.c b/submodule.c index 94644fac0a..2e78f51349 100644 --- a/submodule.c +++ b/submodule.c @@ -24,10 +24,13 @@ #include "remote.h" #include "worktree.h" #include "parse-options.h" +#include "object-file.h" +#include "object-name.h" #include "object-store.h" #include "commit-reach.h" #include "setup.h" #include "shallow.h" +#include "trace2.h" static int config_update_recurse_submodules = RECURSE_SUBMODULES_OFF; static int initialized_fetch_ref_tips; diff --git a/t/helper/test-date.c b/t/helper/test-date.c index 2d9232cc68..0683d46574 100644 --- a/t/helper/test-date.c +++ b/t/helper/test-date.c @@ -1,6 +1,6 @@ #include "test-tool.h" -#include "cache.h" #include "date.h" +#include "trace.h" static const char *usage_msg = "\n" " test-tool date relative [time_t]...\n" diff --git a/t/helper/test-fast-rebase.c b/t/helper/test-fast-rebase.c index fd48e0ee2c..d1d63feaa9 100644 --- a/t/helper/test-fast-rebase.c +++ b/t/helper/test-fast-rebase.c @@ -20,6 +20,7 @@ #include "hex.h" #include "lockfile.h" #include "merge-ort.h" +#include "object-name.h" #include "refs.h" #include "revision.h" #include "sequencer.h" diff --git a/t/helper/test-lazy-init-name-hash.c b/t/helper/test-lazy-init-name-hash.c index 06ce3a47cc..f23d983c11 100644 --- a/t/helper/test-lazy-init-name-hash.c +++ b/t/helper/test-lazy-init-name-hash.c @@ -4,6 +4,7 @@ #include "environment.h" #include "parse-options.h" #include "setup.h" +#include "trace.h" static int single; static int multi; diff --git a/t/helper/test-match-trees.c b/t/helper/test-match-trees.c index 508eb7066a..35a2b8005c 100644 --- a/t/helper/test-match-trees.c +++ b/t/helper/test-match-trees.c @@ -1,6 +1,7 @@ #include "test-tool.h" #include "cache.h" #include "hex.h" +#include "object-name.h" #include "setup.h" #include "tree.h" diff --git a/t/helper/test-mergesort.c b/t/helper/test-mergesort.c index 335e5bb3a9..737e0c5235 100644 --- a/t/helper/test-mergesort.c +++ b/t/helper/test-mergesort.c @@ -1,5 +1,6 @@ #include "test-tool.h" #include "cache.h" +#include "mem-pool.h" #include "mergesort.h" static uint32_t minstd_rand(uint32_t *state) diff --git a/t/helper/test-oidmap.c b/t/helper/test-oidmap.c index a7b7b38df1..1b0e7eecb4 100644 --- a/t/helper/test-oidmap.c +++ b/t/helper/test-oidmap.c @@ -1,6 +1,6 @@ #include "test-tool.h" -#include "cache.h" #include "hex.h" +#include "object-name.h" #include "oidmap.h" #include "setup.h" #include "strbuf.h" diff --git a/t/helper/test-path-utils.c b/t/helper/test-path-utils.c index 4f5ac2fadc..6355c9e4b6 100644 --- a/t/helper/test-path-utils.c +++ b/t/helper/test-path-utils.c @@ -4,6 +4,7 @@ #include "environment.h" #include "setup.h" #include "string-list.h" +#include "trace.h" #include "utf8.h" /* diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c index b0deaa106a..5b6f217441 100644 --- a/t/helper/test-reach.c +++ b/t/helper/test-reach.c @@ -1,11 +1,11 @@ #include "test-tool.h" -#include "cache.h" #include "alloc.h" #include "commit.h" #include "commit-reach.h" #include "config.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "parse-options.h" #include "ref-filter.h" #include "setup.h" diff --git a/t/helper/test-submodule-config.c b/t/helper/test-submodule-config.c index 40a6ee45af..5e462faa9d 100644 --- a/t/helper/test-submodule-config.c +++ b/t/helper/test-submodule-config.c @@ -1,6 +1,6 @@ #include "test-tool.h" -#include "cache.h" #include "config.h" +#include "object-name.h" #include "setup.h" #include "submodule-config.h" #include "submodule.h" diff --git a/tag.c b/tag.c index 01ed67d6fa..96dbd5b2d5 100644 --- a/tag.c +++ b/tag.c @@ -1,6 +1,7 @@ -#include "cache.h" +#include "git-compat-util.h" #include "environment.h" #include "tag.h" +#include "object-name.h" #include "object-store.h" #include "commit.h" #include "tree.h" diff --git a/tmp-objdir.c b/tmp-objdir.c index 5adad1925d..c33a554f92 100644 --- a/tmp-objdir.c +++ b/tmp-objdir.c @@ -1,9 +1,10 @@ -#include "cache.h" +#include "git-compat-util.h" #include "tmp-objdir.h" #include "abspath.h" #include "chdir-notify.h" #include "dir.h" #include "environment.h" +#include "object-file.h" #include "sigchain.h" #include "string-list.h" #include "strbuf.h" diff --git a/trace.c b/trace.c index 81318a2455..592c141d78 100644 --- a/trace.c +++ b/trace.c @@ -21,11 +21,12 @@ * along with this program; if not, see . */ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "environment.h" #include "quote.h" #include "setup.h" +#include "trace.h" #include "wrapper.h" struct trace_key trace_default_key = { "GIT_TRACE", 0, 0, 0 }; diff --git a/trace2.c b/trace2.c index e8ba62c0c3..21264df71b 100644 --- a/trace2.c +++ b/trace2.c @@ -7,6 +7,7 @@ #include "thread-utils.h" #include "version.h" #include "trace.h" +#include "trace2.h" #include "trace2/tr2_cfg.h" #include "trace2/tr2_cmd_name.h" #include "trace2/tr2_ctr.h" diff --git a/transport-helper.c b/transport-helper.c index 76d146ee88..6b816940dc 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "transport.h" #include "quote.h" #include "run-command.h" @@ -7,6 +7,7 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "revision.h" #include "remote.h" #include "string-list.h" diff --git a/transport.c b/transport.c index 89a220425e..0bf2d6940c 100644 --- a/transport.c +++ b/transport.c @@ -1,4 +1,5 @@ -#include "cache.h" +#include "git-compat-util.h" +#include "advice.h" #include "alloc.h" #include "config.h" #include "environment.h" @@ -22,8 +23,10 @@ #include "string-list.h" #include "oid-array.h" #include "sigchain.h" +#include "trace2.h" #include "transport-internal.h" #include "protocol.h" +#include "object-name.h" #include "object-store.h" #include "color.h" #include "bundle-uri.h" diff --git a/tree-walk.c b/tree-walk.c index 38b6556478..2993c48c2f 100644 --- a/tree-walk.c +++ b/tree-walk.c @@ -4,7 +4,9 @@ #include "dir.h" #include "gettext.h" #include "hex.h" +#include "object-file.h" #include "object-store.h" +#include "trace2.h" #include "tree.h" #include "pathspec.h" #include "json-writer.h" diff --git a/tree.c b/tree.c index 2b78708766..e9d51ce2e0 100644 --- a/tree.c +++ b/tree.c @@ -2,6 +2,7 @@ #include "cache-tree.h" #include "hex.h" #include "tree.h" +#include "object-name.h" #include "object-store.h" #include "blob.h" #include "commit.h" diff --git a/unpack-trees.c b/unpack-trees.c index 3ded68ecb6..c0732aa0c2 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "advice.h" #include "strvec.h" #include "repository.h" #include "config.h" @@ -17,6 +18,7 @@ #include "sparse-index.h" #include "submodule.h" #include "submodule-config.h" +#include "trace2.h" #include "fsmonitor.h" #include "object-store.h" #include "promisor-remote.h" diff --git a/unpack-trees.h b/unpack-trees.h index 61c06eb7c5..30622aeebf 100644 --- a/unpack-trees.h +++ b/unpack-trees.h @@ -2,6 +2,7 @@ #define UNPACK_TREES_H #include "cache.h" +#include "convert.h" #include "strvec.h" #include "string-list.h" #include "tree-walk.h" diff --git a/upload-pack.c b/upload-pack.c index e23f16dfdd..e16dee783d 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "environment.h" #include "gettext.h" @@ -8,6 +8,7 @@ #include "sideband.h" #include "repository.h" #include "object-store.h" +#include "oid-array.h" #include "tag.h" #include "object.h" #include "commit.h" @@ -22,6 +23,7 @@ #include "version.h" #include "string-list.h" #include "strvec.h" +#include "trace2.h" #include "prio-queue.h" #include "protocol.h" #include "quote.h" @@ -30,6 +32,7 @@ #include "commit-graph.h" #include "commit-reach.h" #include "shallow.h" +#include "wrapper.h" #include "write-or-die.h" /* Remember to update object flag allocation in object.h */ diff --git a/walker.c b/walker.c index cfbd257fdb..24ff7dfdc2 100644 --- a/walker.c +++ b/walker.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "hex.h" #include "walker.h" diff --git a/wrapper.c b/wrapper.c index ee83757590..c130d7518b 100644 --- a/wrapper.c +++ b/wrapper.c @@ -5,6 +5,7 @@ #include "abspath.h" #include "config.h" #include "gettext.h" +#include "trace2.h" #include "wrapper.h" static intmax_t count_fsync_writeout_only; diff --git a/wt-status.c b/wt-status.c index 4bef09de1c..97b9c1c035 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "advice.h" #include "wt-status.h" #include "object.h" #include "dir.h" @@ -7,6 +8,7 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "revision.h" #include "diffcore.h" #include "quote.h" @@ -18,6 +20,8 @@ #include "column.h" #include "setup.h" #include "strbuf.h" +#include "trace.h" +#include "trace2.h" #include "utf8.h" #include "worktree.h" #include "lockfile.h"