From 74ea5c9574d29a510602492fcd672e5d09c841b0 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 03:00:38 +0000 Subject: [PATCH 01/24] treewide: be explicit about dependence on trace.h & trace2.h Dozens of files made use of trace and trace2 functions, without explicitly including trace.h or trace2.h. This made it more difficult to find which files could remove a dependence on cache.h. Make C files explicitly include trace.h or trace2.h if they are using them. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- blame.c | 1 + builtin/checkout.c | 1 + builtin/commit-graph.c | 1 + builtin/fetch.c | 2 ++ builtin/fsmonitor--daemon.c | 1 + builtin/gc.c | 1 + builtin/push.c | 1 + builtin/rebase.c | 1 + builtin/receive-pack.c | 2 ++ builtin/reset.c | 2 ++ cache-tree.c | 2 ++ cache.h | 2 -- chdir-notify.c | 1 + common-main.c | 1 + compat/fsmonitor/fsm-listen-win32.c | 1 + compat/mingw.c | 1 + compat/simple-ipc/ipc-unix-socket.c | 1 + compat/simple-ipc/ipc-win32.c | 2 ++ compat/win32/trace2_win32_process_info.c | 1 + config.c | 1 + connect.c | 1 + convert.c | 1 + diff-lib.c | 1 + dir.c | 1 + environment.c | 1 + exec-cmd.c | 2 ++ fetch-pack.c | 1 + fsmonitor.c | 1 + fsmonitor.h | 1 + git.c | 2 ++ http.c | 1 + merge-ort.c | 1 + name-hash.c | 1 + notes-merge.c | 1 + pack-bitmap.c | 1 + pack-revindex.c | 1 + packfile.c | 1 + pkt-line.c | 1 + preload-index.c | 1 + progress.c | 1 + promisor-remote.c | 1 + protocol.c | 1 + read-cache.c | 1 + remote-curl.c | 1 + repository.c | 1 + revision.c | 1 + run-command.c | 2 ++ scalar.c | 1 + setup.c | 1 + shallow.c | 1 + submodule.c | 1 + t/helper/test-date.c | 1 + t/helper/test-lazy-init-name-hash.c | 1 + t/helper/test-path-utils.c | 1 + trace.c | 1 + trace2.c | 1 + transport.c | 1 + tree-walk.c | 1 + unpack-trees.c | 1 + upload-pack.c | 1 + wrapper.c | 1 + wt-status.c | 2 ++ 62 files changed, 70 insertions(+), 2 deletions(-) diff --git a/blame.c b/blame.c index 62db980764..3455f6a5ea 100644 --- a/blame.c +++ b/blame.c @@ -9,6 +9,7 @@ #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/builtin/checkout.c b/builtin/checkout.c index 38a8cd6a96..422ea76840 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -26,6 +26,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/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/fetch.c b/builtin/fetch.c index 6a6a58d49c..ffe0e21459 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -31,6 +31,8 @@ #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/fsmonitor--daemon.c b/builtin/fsmonitor--daemon.c index a280d8bb14..df876b41d6 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 b291e23b13..000a2ef5e1 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -37,6 +37,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/push.c b/builtin/push.c index fa550b8f80..a99ba38a36 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -16,6 +16,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/rebase.c b/builtin/rebase.c index dbc8f90ef0..fb859f93a3 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -32,6 +32,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 2ba5a74ba7..aa5b6fe861 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -32,6 +32,8 @@ #include "object-store.h" #include "protocol.h" #include "commit-reach.h" +#include "trace.h" +#include "trace2.h" #include "worktree.h" #include "shallow.h" #include "wrapper.h" diff --git a/builtin/reset.c b/builtin/reset.c index 0ed329236c..4d639ec6b3 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -29,6 +29,8 @@ #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/cache-tree.c b/cache-tree.c index ff14b527da..39f0c74472 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -11,6 +11,8 @@ #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..c8ae80fded 100644 --- a/cache.h +++ b/cache.h @@ -8,8 +8,6 @@ #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" diff --git a/chdir-notify.c b/chdir-notify.c index 929ec01b3a..8e38cd6f3a 100644 --- a/chdir-notify.c +++ b/chdir-notify.c @@ -3,6 +3,7 @@ #include "chdir-notify.h" #include "list.h" #include "strbuf.h" +#include "trace.h" struct chdir_notify_entry { const char *name; 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/simple-ipc/ipc-unix-socket.c b/compat/simple-ipc/ipc-unix-socket.c index 152db60a31..7064475b39 100644 --- a/compat/simple-ipc/ipc-unix-socket.c +++ b/compat/simple-ipc/ipc-unix-socket.c @@ -4,6 +4,7 @@ #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 5ad9ae9143..e5c2e47731 100644 --- a/config.c +++ b/config.c @@ -28,6 +28,7 @@ #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 737dd906f7..929f72ec5d 100644 --- a/connect.c +++ b/connect.c @@ -14,6 +14,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..126036ec33 100644 --- a/convert.c +++ b/convert.c @@ -9,6 +9,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/diff-lib.c b/diff-lib.c index 4169dd8cb1..8b5cca96ac 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -13,6 +13,7 @@ #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/dir.c b/dir.c index 18fd14c46b..10f6c38b93 100644 --- a/dir.c +++ b/dir.c @@ -23,6 +23,7 @@ #include "fsmonitor.h" #include "setup.h" #include "submodule-config.h" +#include "trace2.h" #include "wrapper.h" /* diff --git a/environment.c b/environment.c index 63c697e7e9..2254595e4a 100644 --- a/environment.c +++ b/environment.c @@ -24,6 +24,7 @@ #include "chdir-notify.h" #include "setup.h" #include "shallow.h" +#include "trace.h" #include "wrapper.h" #include "write-or-die.h" 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..7d4f190fb1 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -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/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 edf7ce5203..67faf592e1 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.c b/git.c index 77f920a6f6..d2bb86e0d3 100644 --- a/git.c +++ b/git.c @@ -9,6 +9,8 @@ #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/http.c b/http.c index dbe4d29ef7..0212c0ad3b 100644 --- a/http.c +++ b/http.c @@ -12,6 +12,7 @@ #include "version.h" #include "pkt-line.h" #include "gettext.h" +#include "trace.h" #include "transport.h" #include "packfile.h" #include "protocol.h" diff --git a/merge-ort.c b/merge-ort.c index 5bf64354d1..ad7367179d 100644 --- a/merge-ort.c +++ b/merge-ort.c @@ -37,6 +37,7 @@ #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/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..19405ec71a 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -13,6 +13,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/pack-bitmap.c b/pack-bitmap.c index 23d87e71bd..eba838d24e 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -15,6 +15,7 @@ #include "pack-objects.h" #include "packfile.h" #include "repository.h" +#include "trace2.h" #include "object-store.h" #include "list-objects-filter-options.h" #include "midx.h" diff --git a/pack-revindex.c b/pack-revindex.c index 03c7e81f9d..9f9927d947 100644 --- a/pack-revindex.c +++ b/pack-revindex.c @@ -3,6 +3,7 @@ #include "pack-revindex.h" #include "object-store.h" #include "packfile.h" +#include "trace2.h" #include "config.h" #include "midx.h" diff --git a/packfile.c b/packfile.c index b120405ccc..2d3dabb1ae 100644 --- a/packfile.c +++ b/packfile.c @@ -15,6 +15,7 @@ #include "commit.h" #include "object.h" #include "tag.h" +#include "trace.h" #include "tree-walk.h" #include "tree.h" #include "object-store.h" 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/progress.c b/progress.c index 44c784d75f..c5c8514737 100644 --- a/progress.c +++ b/progress.c @@ -13,6 +13,7 @@ #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..9d83d2f4b9 100644 --- a/promisor-remote.c +++ b/promisor-remote.c @@ -4,6 +4,7 @@ #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..4d8eb887e8 100644 --- a/protocol.c +++ b/protocol.c @@ -2,6 +2,7 @@ #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/read-cache.c b/read-cache.c index e5e7216904..a744eb89e4 100644 --- a/read-cache.c +++ b/read-cache.c @@ -23,6 +23,7 @@ #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/remote-curl.c b/remote-curl.c index 0f2410da8e..0ada1dd802 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/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/revision.c b/revision.c index cd3e841433..7c34c93885 100644 --- a/revision.c +++ b/revision.c @@ -31,6 +31,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 27635658c0..f7680463e1 100644 --- a/scalar.c +++ b/scalar.c @@ -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/setup.c b/setup.c index 6c5b85e96c..3bb7a9fff6 100644 --- a/setup.c +++ b/setup.c @@ -10,6 +10,7 @@ #include "chdir-notify.h" #include "promisor-remote.h" #include "quote.h" +#include "trace2.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/submodule.c b/submodule.c index d7d0a8a083..58c9d5e567 100644 --- a/submodule.c +++ b/submodule.c @@ -28,6 +28,7 @@ #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 45951b1df8..a01eec99f3 100644 --- a/t/helper/test-date.c +++ b/t/helper/test-date.c @@ -1,6 +1,7 @@ #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-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-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/trace.c b/trace.c index 81318a2455..d8eaa0a786 100644 --- a/trace.c +++ b/trace.c @@ -26,6 +26,7 @@ #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.c b/transport.c index d2a1af43b5..11b38d16dc 100644 --- a/transport.c +++ b/transport.c @@ -22,6 +22,7 @@ #include "string-list.h" #include "oid-array.h" #include "sigchain.h" +#include "trace2.h" #include "transport-internal.h" #include "protocol.h" #include "object-store.h" diff --git a/tree-walk.c b/tree-walk.c index 38b6556478..59add24c8e 100644 --- a/tree-walk.c +++ b/tree-walk.c @@ -5,6 +5,7 @@ #include "gettext.h" #include "hex.h" #include "object-store.h" +#include "trace2.h" #include "tree.h" #include "pathspec.h" #include "json-writer.h" diff --git a/unpack-trees.c b/unpack-trees.c index 4a5522bdb2..d41489b4ad 100644 --- a/unpack-trees.c +++ b/unpack-trees.c @@ -17,6 +17,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/upload-pack.c b/upload-pack.c index e23f16dfdd..71440c6380 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -22,6 +22,7 @@ #include "version.h" #include "string-list.h" #include "strvec.h" +#include "trace2.h" #include "prio-queue.h" #include "protocol.h" #include "quote.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..ccbfd9cc6d 100644 --- a/wt-status.c +++ b/wt-status.c @@ -18,6 +18,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" From 6c6ddf92d511c423b8b54fb1b01d563b6f4c58f7 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 03:00:39 +0000 Subject: [PATCH 02/24] treewide: be explicit about dependence on advice.h Dozens of files made use of advice functions, without explicitly including advice.h. This made it more difficult to find which files could remove a dependence on cache.h. Make C files explicitly include advice.h if they are using it. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- add-patch.c | 1 + branch.c | 1 + builtin/add.c | 1 + builtin/am.c | 1 + builtin/clone.c | 1 + builtin/commit.c | 1 + builtin/fetch.c | 1 + builtin/merge-recursive.c | 1 + builtin/merge.c | 1 + builtin/mv.c | 1 + builtin/pull.c | 1 + builtin/push.c | 1 + builtin/reset.c | 1 + builtin/tag.c | 1 + cache.h | 1 - config.c | 1 + convert.c | 1 + editor.c | 1 + notes-merge.c | 1 + object-name.c | 1 + refs.c | 1 + sequencer.c | 1 + transport.c | 1 + unpack-trees.c | 1 + wt-status.c | 1 + 25 files changed, 24 insertions(+), 1 deletion(-) diff --git a/add-patch.c b/add-patch.c index 1e1ee2df59..b381f14a7d 100644 --- a/add-patch.c +++ b/add-patch.c @@ -1,5 +1,6 @@ #include "cache.h" #include "add-interactive.h" +#include "advice.h" #include "alloc.h" #include "environment.h" #include "gettext.h" diff --git a/branch.c b/branch.c index 99a0e7889e..3a087b8b4c 100644 --- a/branch.c +++ b/branch.c @@ -1,5 +1,6 @@ #include "git-compat-util.h" #include "cache.h" +#include "advice.h" #include "config.h" #include "branch.h" #include "environment.h" diff --git a/builtin/add.c b/builtin/add.c index f12054d9be..d3c51e2814 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -5,6 +5,7 @@ */ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "advice.h" #include "config.h" #include "builtin.h" #include "lockfile.h" diff --git a/builtin/am.c b/builtin/am.c index cd1e20f24e..8d876f3154 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -6,6 +6,7 @@ #define USE_THE_INDEX_VARIABLE #include "cache.h" #include "abspath.h" +#include "advice.h" #include "config.h" #include "builtin.h" #include "environment.h" diff --git a/builtin/clone.c b/builtin/clone.c index c171def1f3..f1e8aa3f27 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" diff --git a/builtin/commit.c b/builtin/commit.c index 9d8e1ea91a..b09017e04f 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -7,6 +7,7 @@ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "advice.h" #include "config.h" #include "lockfile.h" #include "cache-tree.h" diff --git a/builtin/fetch.c b/builtin/fetch.c index ffe0e21459..f2b8098775 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" diff --git a/builtin/merge-recursive.c b/builtin/merge-recursive.c index 8ea9dc78aa..25f42f2be7 100644 --- a/builtin/merge-recursive.c +++ b/builtin/merge-recursive.c @@ -1,5 +1,6 @@ #include "cache.h" #include "builtin.h" +#include "advice.h" #include "commit.h" #include "gettext.h" #include "tag.h" diff --git a/builtin/merge.c b/builtin/merge.c index a99be9610e..225b706406 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -9,6 +9,7 @@ #define USE_THE_INDEX_VARIABLE #include "cache.h" #include "abspath.h" +#include "advice.h" #include "alloc.h" #include "config.h" #include "environment.h" diff --git a/builtin/mv.c b/builtin/mv.c index b7c5ffbd8c..8f7770aa32 100644 --- a/builtin/mv.c +++ b/builtin/mv.c @@ -6,6 +6,7 @@ #define USE_THE_INDEX_VARIABLE #include "builtin.h" #include "abspath.h" +#include "advice.h" #include "alloc.h" #include "config.h" #include "environment.h" diff --git a/builtin/pull.c b/builtin/pull.c index 5405d09f22..636ce12c94 100644 --- a/builtin/pull.c +++ b/builtin/pull.c @@ -7,6 +7,7 @@ */ #define USE_THE_INDEX_VARIABLE #include "cache.h" +#include "advice.h" #include "config.h" #include "builtin.h" #include "gettext.h" diff --git a/builtin/push.c b/builtin/push.c index a99ba38a36..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" diff --git a/builtin/reset.c b/builtin/reset.c index 4d639ec6b3..d8c52cc6ed 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" diff --git a/builtin/tag.c b/builtin/tag.c index bfd5138957..3e801f54a0 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -7,6 +7,7 @@ */ #include "cache.h" +#include "advice.h" #include "config.h" #include "builtin.h" #include "environment.h" diff --git a/cache.h b/cache.h index c8ae80fded..d9ca2688d8 100644 --- a/cache.h +++ b/cache.h @@ -5,7 +5,6 @@ #include "strbuf.h" #include "hashmap.h" #include "list.h" -#include "advice.h" #include "gettext.h" #include "convert.h" #include "string-list.h" diff --git a/config.c b/config.c index e5c2e47731..3cee6538f3 100644 --- a/config.c +++ b/config.c @@ -7,6 +7,7 @@ */ #include "cache.h" #include "abspath.h" +#include "advice.h" #include "alloc.h" #include "date.h" #include "branch.h" diff --git a/convert.c b/convert.c index 126036ec33..5912770644 100644 --- a/convert.c +++ b/convert.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "advice.h" #include "config.h" #include "gettext.h" #include "hex.h" diff --git a/editor.c b/editor.c index d632d79066..3bea3ef72f 100644 --- a/editor.c +++ b/editor.c @@ -1,5 +1,6 @@ #include "cache.h" #include "abspath.h" +#include "advice.h" #include "config.h" #include "environment.h" #include "gettext.h" diff --git a/notes-merge.c b/notes-merge.c index 19405ec71a..0258f87d21 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "advice.h" #include "commit.h" #include "gettext.h" #include "refs.h" diff --git a/object-name.c b/object-name.c index 53f9d359ee..ff647d6c7b 100644 --- a/object-name.c +++ b/object-name.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "advice.h" #include "config.h" #include "environment.h" #include "gettext.h" diff --git a/refs.c b/refs.c index 0f369dbde7..cfced6f174 100644 --- a/refs.c +++ b/refs.c @@ -3,6 +3,7 @@ */ #include "cache.h" +#include "advice.h" #include "alloc.h" #include "config.h" #include "environment.h" diff --git a/sequencer.c b/sequencer.c index 1a315ac13c..eaba379e3a 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" diff --git a/transport.c b/transport.c index 11b38d16dc..82bf2496ba 100644 --- a/transport.c +++ b/transport.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "advice.h" #include "alloc.h" #include "config.h" #include "environment.h" diff --git a/unpack-trees.c b/unpack-trees.c index d41489b4ad..c6de2ca5a7 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" diff --git a/wt-status.c b/wt-status.c index ccbfd9cc6d..47f223c0f8 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" From 73359a9b4375e0a0c02bb6b4f50e6782837cdc3f Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 03:00:40 +0000 Subject: [PATCH 03/24] treewide: be explicit about dependence on convert.h Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- archive.c | 1 + blame.c | 1 + builtin/cat-file.c | 1 + builtin/ls-files.c | 1 + cache.h | 1 - combine-diff.c | 1 + config.c | 1 + convert.c | 1 + diff.c | 1 + dir.c | 1 + environment.c | 1 + ll-merge.c | 1 + object-file.c | 1 + streaming.c | 1 + unpack-trees.h | 1 + 15 files changed, 14 insertions(+), 1 deletion(-) diff --git a/archive.c b/archive.c index f1b8e9ce48..ab8966d73a 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/blame.c b/blame.c index 3455f6a5ea..ff2a6c4912 100644 --- a/blame.c +++ b/blame.c @@ -3,6 +3,7 @@ #include "object-store.h" #include "cache-tree.h" #include "mergesort.h" +#include "convert.h" #include "diff.h" #include "diffcore.h" #include "gettext.h" diff --git a/builtin/cat-file.c b/builtin/cat-file.c index 04d4bb6c77..1e4b4798f4 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" diff --git a/builtin/ls-files.c b/builtin/ls-files.c index 68532f3e51..7f228353fe 100644 --- a/builtin/ls-files.c +++ b/builtin/ls-files.c @@ -8,6 +8,7 @@ #include "cache.h" #include "repository.h" #include "config.h" +#include "convert.h" #include "quote.h" #include "dir.h" #include "builtin.h" diff --git a/cache.h b/cache.h index d9ca2688d8..415f0f8567 100644 --- a/cache.h +++ b/cache.h @@ -6,7 +6,6 @@ #include "hashmap.h" #include "list.h" #include "gettext.h" -#include "convert.h" #include "string-list.h" #include "pack-revindex.h" #include "hash.h" diff --git a/combine-diff.c b/combine-diff.c index 44ef6a1a81..6586e4508d 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -1,6 +1,7 @@ #include "cache.h" #include "object-store.h" #include "commit.h" +#include "convert.h" #include "blob.h" #include "diff.h" #include "diffcore.h" diff --git a/config.c b/config.c index 3cee6538f3..9e74b5aec7 100644 --- a/config.c +++ b/config.c @@ -12,6 +12,7 @@ #include "date.h" #include "branch.h" #include "config.h" +#include "convert.h" #include "environment.h" #include "gettext.h" #include "ident.h" diff --git a/convert.c b/convert.c index 5912770644..5a2ea5308d 100644 --- a/convert.c +++ b/convert.c @@ -1,6 +1,7 @@ #include "cache.h" #include "advice.h" #include "config.h" +#include "convert.h" #include "gettext.h" #include "hex.h" #include "object-store.h" diff --git a/diff.c b/diff.c index e55a015cfd..47c1973a50 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" diff --git a/dir.c b/dir.c index 10f6c38b93..d1f1b1ef76 100644 --- a/dir.c +++ b/dir.c @@ -9,6 +9,7 @@ #include "abspath.h" #include "alloc.h" #include "config.h" +#include "convert.h" #include "dir.h" #include "environment.h" #include "gettext.h" diff --git a/environment.c b/environment.c index 2254595e4a..e57292eccc 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" 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/object-file.c b/object-file.c index 76b22ca75c..a4331e0da6 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" diff --git a/streaming.c b/streaming.c index 024fd796b7..27e014d8b2 100644 --- a/streaming.c +++ b/streaming.c @@ -2,6 +2,7 @@ * Copyright (c) 2011, Google Inc. */ #include "cache.h" +#include "convert.h" #include "environment.h" #include "streaming.h" #include "repository.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" From 75f273d9b7ce1d63c0c94e0e196107e90b3b9538 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 03:00:41 +0000 Subject: [PATCH 04/24] treewide: be explicit about dependence on pack-revindex.h Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- builtin/index-pack.c | 1 + cache.h | 1 - pack-write.c | 1 + packfile.c | 1 + 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/builtin/index-pack.c b/builtin/index-pack.c index b17e79cd40..ceb0f120ed 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -17,6 +17,7 @@ #include "streaming.h" #include "thread-utils.h" #include "packfile.h" +#include "pack-revindex.h" #include "object-store.h" #include "replace-object.h" #include "promisor-remote.h" diff --git a/cache.h b/cache.h index 415f0f8567..5f1279454a 100644 --- a/cache.h +++ b/cache.h @@ -7,7 +7,6 @@ #include "list.h" #include "gettext.h" #include "string-list.h" -#include "pack-revindex.h" #include "hash.h" #include "path.h" #include "pathspec.h" diff --git a/pack-write.c b/pack-write.c index f171405495..152c14aa7a 100644 --- a/pack-write.c +++ b/pack-write.c @@ -9,6 +9,7 @@ #include "pack-mtimes.h" #include "oidmap.h" #include "pack-objects.h" +#include "pack-revindex.h" void reset_pack_idx_option(struct pack_idx_option *opts) { diff --git a/packfile.c b/packfile.c index 2d3dabb1ae..02afbe7713 100644 --- a/packfile.c +++ b/packfile.c @@ -21,6 +21,7 @@ #include "object-store.h" #include "midx.h" #include "commit-graph.h" +#include "pack-revindex.h" #include "promisor-remote.h" #include "wrapper.h" From 6f2d74304335f571374f786537b2efe5aba9f48c Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 03:00:42 +0000 Subject: [PATCH 05/24] treewide: be explicit about dependence on oid-array.h Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- builtin/bisect.c | 1 + builtin/fetch.c | 1 + builtin/index-pack.c | 1 + builtin/log.c | 1 + cache.h | 1 - commit-graph.c | 1 + diff.c | 1 + merge-ort.c | 1 + read-cache.c | 1 + ref-filter.c | 1 + upload-pack.c | 1 + 11 files changed, 10 insertions(+), 1 deletion(-) diff --git a/builtin/bisect.c b/builtin/bisect.c index 26f07357a0..7dc175c657 100644 --- a/builtin/bisect.c +++ b/builtin/bisect.c @@ -9,6 +9,7 @@ #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/fetch.c b/builtin/fetch.c index f2b8098775..e093662921 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -12,6 +12,7 @@ #include "refspec.h" #include "object-store.h" #include "oidset.h" +#include "oid-array.h" #include "commit.h" #include "builtin.h" #include "string-list.h" diff --git a/builtin/index-pack.c b/builtin/index-pack.c index ceb0f120ed..5adfb2521c 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -19,6 +19,7 @@ #include "packfile.h" #include "pack-revindex.h" #include "object-store.h" +#include "oid-array.h" #include "replace-object.h" #include "promisor-remote.h" #include "setup.h" diff --git a/builtin/log.c b/builtin/log.c index 2ce645eee9..094897df23 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -20,6 +20,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/cache.h b/cache.h index 5f1279454a..6eac3134a2 100644 --- a/cache.h +++ b/cache.h @@ -11,7 +11,6 @@ #include "path.h" #include "pathspec.h" #include "object.h" -#include "oid-array.h" #include "repository.h" #include "statinfo.h" #include "mem-pool.h" diff --git a/commit-graph.c b/commit-graph.c index 1bf673b134..fe9a8b2342 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -12,6 +12,7 @@ #include "hash-lookup.h" #include "commit-graph.h" #include "object-store.h" +#include "oid-array.h" #include "alloc.h" #include "hashmap.h" #include "replace-object.h" diff --git a/diff.c b/diff.c index 47c1973a50..89cd0b17da 100644 --- a/diff.c +++ b/diff.c @@ -29,6 +29,7 @@ #include "string-list.h" #include "strvec.h" #include "graph.h" +#include "oid-array.h" #include "packfile.h" #include "parse-options.h" #include "help.h" diff --git a/merge-ort.c b/merge-ort.c index ad7367179d..9b0b184b13 100644 --- a/merge-ort.c +++ b/merge-ort.c @@ -32,6 +32,7 @@ #include "entry.h" #include "ll-merge.h" #include "object-store.h" +#include "oid-array.h" #include "promisor-remote.h" #include "revision.h" #include "strmap.h" diff --git a/read-cache.c b/read-cache.c index a744eb89e4..1b585ce842 100644 --- a/read-cache.c +++ b/read-cache.c @@ -15,6 +15,7 @@ #include "refs.h" #include "dir.h" #include "object-store.h" +#include "oid-array.h" #include "tree.h" #include "commit.h" #include "blob.h" diff --git a/ref-filter.c b/ref-filter.c index df84bb7164..1c6174c8ae 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -7,6 +7,7 @@ #include "refs.h" #include "wildmatch.h" #include "object-store.h" +#include "oid-array.h" #include "repository.h" #include "commit.h" #include "remote.h" diff --git a/upload-pack.c b/upload-pack.c index 71440c6380..e17545a834 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -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" From 5bc07225e5ee8b315289ae26799840721fc0f321 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:47 -0700 Subject: [PATCH 06/24] treewide: be explicit about dependence on mem-pool.h Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- builtin/checkout.c | 1 + cache.h | 1 - merge-ort.c | 1 + read-cache.c | 1 + split-index.c | 1 + t/helper/test-mergesort.c | 1 + 6 files changed, 5 insertions(+), 1 deletion(-) diff --git a/builtin/checkout.c b/builtin/checkout.c index 422ea76840..65988fd8a3 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -15,6 +15,7 @@ #include "hook.h" #include "ll-merge.h" #include "lockfile.h" +#include "mem-pool.h" #include "merge-recursive.h" #include "object-store.h" #include "parse-options.h" diff --git a/cache.h b/cache.h index 6eac3134a2..66705dd469 100644 --- a/cache.h +++ b/cache.h @@ -13,7 +13,6 @@ #include "object.h" #include "repository.h" #include "statinfo.h" -#include "mem-pool.h" typedef struct git_zstream { z_stream z; diff --git a/merge-ort.c b/merge-ort.c index 9b0b184b13..1008684fbb 100644 --- a/merge-ort.c +++ b/merge-ort.c @@ -31,6 +31,7 @@ #include "hex.h" #include "entry.h" #include "ll-merge.h" +#include "mem-pool.h" #include "object-store.h" #include "oid-array.h" #include "promisor-remote.h" diff --git a/read-cache.c b/read-cache.c index 1b585ce842..4ada6d62b9 100644 --- a/read-cache.c +++ b/read-cache.c @@ -21,6 +21,7 @@ #include "blob.h" #include "environment.h" #include "gettext.h" +#include "mem-pool.h" #include "resolve-undo.h" #include "run-command.h" #include "strbuf.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/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) From 5579f44d2fb37e1126e71870b208d93e93e510ac Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:48 -0700 Subject: [PATCH 07/24] treewide: remove unnecessary cache.h inclusion Several files were including cache.h solely to get other headers, such as trace.h and trace2.h. Since the last few commits have modified files to make these dependencies more explicit, the inclusion of cache.h is no longer needed in several cases. Remove it. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- compat/simple-ipc/ipc-unix-socket.c | 2 +- connect.c | 1 - fetch-pack.c | 2 +- pack-write.c | 2 +- promisor-remote.c | 2 +- protocol.c | 2 +- scalar.c | 2 +- t/helper/test-date.c | 1 - trace.c | 2 +- upload-pack.c | 2 +- 10 files changed, 8 insertions(+), 10 deletions(-) diff --git a/compat/simple-ipc/ipc-unix-socket.c b/compat/simple-ipc/ipc-unix-socket.c index 7064475b39..b2f4f22ce4 100644 --- a/compat/simple-ipc/ipc-unix-socket.c +++ b/compat/simple-ipc/ipc-unix-socket.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "simple-ipc.h" #include "strbuf.h" diff --git a/connect.c b/connect.c index 929f72ec5d..5d8036197d 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" diff --git a/fetch-pack.c b/fetch-pack.c index 7d4f190fb1..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" diff --git a/pack-write.c b/pack-write.c index 152c14aa7a..d9b460fab4 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" diff --git a/promisor-remote.c b/promisor-remote.c index 9d83d2f4b9..1adcd6fb0a 100644 --- a/promisor-remote.c +++ b/promisor-remote.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "hex.h" #include "object-store.h" diff --git a/protocol.c b/protocol.c index 4d8eb887e8..079ba75acf 100644 --- a/protocol.c +++ b/protocol.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "environment.h" #include "protocol.h" diff --git a/scalar.c b/scalar.c index f7680463e1..af64f75ca6 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" diff --git a/t/helper/test-date.c b/t/helper/test-date.c index a01eec99f3..7adadd41e0 100644 --- a/t/helper/test-date.c +++ b/t/helper/test-date.c @@ -1,5 +1,4 @@ #include "test-tool.h" -#include "cache.h" #include "date.h" #include "trace.h" diff --git a/trace.c b/trace.c index d8eaa0a786..592c141d78 100644 --- a/trace.c +++ b/trace.c @@ -21,7 +21,7 @@ * along with this program; if not, see . */ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "environment.h" #include "quote.h" diff --git a/upload-pack.c b/upload-pack.c index e17545a834..0305fb2fbd 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" From dabab1d6e6c49f3d4a6393a9984e3f6a4e8fb991 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:49 -0700 Subject: [PATCH 08/24] object-name.h: move declarations for object-name.c functions from cache.h Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- add-patch.c | 1 + apply.c | 1 + archive.h | 1 + bisect.c | 1 + branch.c | 1 + builtin/am.c | 1 + builtin/bisect.c | 1 + builtin/blame.c | 1 + builtin/branch.c | 1 + builtin/cat-file.c | 1 + builtin/check-attr.c | 1 + builtin/checkout.c | 1 + builtin/commit-tree.c | 1 + builtin/commit.c | 1 + builtin/describe.c | 1 + builtin/fast-import.c | 1 + builtin/fetch.c | 1 + builtin/fsck.c | 1 + builtin/grep.c | 1 + builtin/log.c | 1 + builtin/ls-files.c | 1 + builtin/ls-tree.c | 1 + builtin/merge-base.c | 1 + builtin/merge-recursive.c | 1 + builtin/merge-tree.c | 1 + builtin/merge.c | 1 + builtin/name-rev.c | 1 + builtin/notes.c | 1 + builtin/prune.c | 1 + builtin/pull.c | 1 + builtin/range-diff.c | 1 + builtin/read-tree.c | 1 + builtin/rebase.c | 1 + builtin/receive-pack.c | 1 + builtin/replace.c | 1 + builtin/reset.c | 1 + builtin/rev-list.c | 1 + builtin/rev-parse.c | 1 + builtin/rm.c | 1 + builtin/show-branch.c | 1 + builtin/show-ref.c | 1 + builtin/sparse-checkout.c | 1 + builtin/stash.c | 1 + builtin/submodule--helper.c | 1 + builtin/tag.c | 1 + builtin/unpack-file.c | 1 + builtin/update-ref.c | 1 + builtin/verify-commit.c | 1 + builtin/verify-tag.c | 1 + builtin/worktree.c | 1 + cache.h | 110 ---------------------------- checkout.c | 1 + combine-diff.c | 1 + commit.c | 1 + config.c | 1 + diff-lib.c | 1 + diff.c | 1 + fmt-merge-msg.c | 1 + list-objects-filter.c | 1 + log-tree.c | 1 + mailmap.c | 1 + merge-ort.c | 1 + merge-recursive.c | 1 + notes-merge.c | 1 + notes.c | 1 + object-name.c | 1 + object-name.h | 121 +++++++++++++++++++++++++++++++ parse-options-cb.c | 1 + range-diff.c | 1 + read-cache.c | 1 + rebase-interactive.c | 1 + ref-filter.c | 1 + refs.c | 1 + remote.c | 1 + reset.c | 1 + revision.c | 1 + sequencer.c | 1 + setup.c | 1 + strbuf.c | 1 + submodule-config.c | 1 + submodule.c | 1 + t/helper/test-fast-rebase.c | 1 + t/helper/test-match-trees.c | 1 + t/helper/test-oidmap.c | 1 + t/helper/test-reach.c | 1 + t/helper/test-submodule-config.c | 1 + tag.c | 1 + transport-helper.c | 1 + transport.c | 1 + tree.c | 1 + wt-status.c | 1 + 91 files changed, 210 insertions(+), 110 deletions(-) create mode 100644 object-name.h diff --git a/add-patch.c b/add-patch.c index b381f14a7d..b01ba8fa81 100644 --- a/add-patch.c +++ b/add-patch.c @@ -4,6 +4,7 @@ #include "alloc.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 9b7288bc92..7e40f53ec4 100644 --- a/apply.c +++ b/apply.c @@ -22,6 +22,7 @@ #include "xdiff-interface.h" #include "ll-merge.h" #include "lockfile.h" +#include "object-name.h" #include "parse-options.h" #include "quote.h" #include "rerere.h" diff --git a/archive.h b/archive.h index 7178e2a9a2..f96839ef38 100644 --- a/archive.h +++ b/archive.h @@ -2,6 +2,7 @@ #define ARCHIVE_H #include "cache.h" +#include "object-name.h" #include "pathspec.h" struct repository; diff --git a/bisect.c b/bisect.c index 0a5f2ed354..e708e8b6aa 100644 --- a/bisect.c +++ b/bisect.c @@ -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/branch.c b/branch.c index 3a087b8b4c..f29743b161 100644 --- a/branch.c +++ b/branch.c @@ -6,6 +6,7 @@ #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/am.c b/builtin/am.c index 8d876f3154..0d7ee28bdd 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -27,6 +27,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" diff --git a/builtin/bisect.c b/builtin/bisect.c index 7dc175c657..4b2143d455 100644 --- a/builtin/bisect.c +++ b/builtin/bisect.c @@ -3,6 +3,7 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "parse-options.h" #include "bisect.h" #include "refs.h" diff --git a/builtin/blame.c b/builtin/blame.c index a8d2114adc..a628388c2c 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -28,6 +28,7 @@ #include "line-log.h" #include "dir.h" #include "progress.h" +#include "object-name.h" #include "object-store.h" #include "blame.h" #include "refs.h" diff --git a/builtin/branch.c b/builtin/branch.c index 5706eb0097..7c1c872708 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -13,6 +13,7 @@ #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/cat-file.c b/builtin/cat-file.c index 1e4b4798f4..60b7a55dfc 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -20,6 +20,7 @@ #include "tree-walk.h" #include "oid-array.h" #include "packfile.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 65988fd8a3..6f5d82ed3d 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -17,6 +17,7 @@ #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" 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 b09017e04f..682f47c8d5 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -27,6 +27,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/describe.c b/builtin/describe.c index 0125d4ddba..d360b1d12a 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/fast-import.c b/builtin/fast-import.c index 68b1a53987..31b8732128 100644 --- a/builtin/fast-import.c +++ b/builtin/fast-import.c @@ -19,6 +19,7 @@ #include "dir.h" #include "run-command.h" #include "packfile.h" +#include "object-name.h" #include "object-store.h" #include "mem-pool.h" #include "commit-reach.h" diff --git a/builtin/fetch.c b/builtin/fetch.c index e093662921..8a8ab6799e 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -10,6 +10,7 @@ #include "repository.h" #include "refs.h" #include "refspec.h" +#include "object-name.h" #include "object-store.h" #include "oidset.h" #include "oid-array.h" diff --git a/builtin/fsck.c b/builtin/fsck.c index 095b39d398..04bc71d148 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -19,6 +19,7 @@ #include "streaming.h" #include "decorate.h" #include "packfile.h" +#include "object-name.h" #include "object-store.h" #include "replace-object.h" #include "resolve-undo.h" diff --git a/builtin/grep.c b/builtin/grep.c index a1b68d90bd..f66e14389e 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -26,6 +26,7 @@ #include "setup.h" #include "submodule.h" #include "submodule-config.h" +#include "object-name.h" #include "object-store.h" #include "packfile.h" #include "write-or-die.h" diff --git a/builtin/log.c b/builtin/log.c index 094897df23..5cdc2276cc 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -12,6 +12,7 @@ #include "gettext.h" #include "hex.h" #include "refs.h" +#include "object-name.h" #include "object-store.h" #include "color.h" #include "commit.h" diff --git a/builtin/ls-files.c b/builtin/ls-files.c index 7f228353fe..ce083cb8ef 100644 --- a/builtin/ls-files.c +++ b/builtin/ls-files.c @@ -13,6 +13,7 @@ #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 25f42f2be7..fa1035405c 100644 --- a/builtin/merge-recursive.c +++ b/builtin/merge-recursive.c @@ -5,6 +5,7 @@ #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 225b706406..693f185d4d 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -15,6 +15,7 @@ #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/name-rev.c b/builtin/name-rev.c index 831d360a78..41fd56b9ba 100644 --- a/builtin/name-rev.c +++ b/builtin/name-rev.c @@ -8,6 +8,7 @@ #include "commit.h" #include "tag.h" #include "refs.h" +#include "object-name.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..896140b905 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -13,6 +13,7 @@ #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/prune.c b/builtin/prune.c index 5c0952f5c6..09891832fb 100644 --- a/builtin/prune.c +++ b/builtin/prune.c @@ -11,6 +11,7 @@ #include "progress.h" #include "prune-packed.h" #include "replace-object.h" +#include "object-name.h" #include "object-store.h" #include "shallow.h" diff --git a/builtin/pull.c b/builtin/pull.c index 636ce12c94..967368ebc6 100644 --- a/builtin/pull.c +++ b/builtin/pull.c @@ -12,6 +12,7 @@ #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/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 fb859f93a3..ff5dd77608 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -21,6 +21,7 @@ #include "cache-tree.h" #include "unpack-trees.h" #include "lockfile.h" +#include "object-name.h" #include "parse-options.h" #include "commit.h" #include "diff.h" diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index aa5b6fe861..7d921170f1 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -29,6 +29,7 @@ #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" diff --git a/builtin/replace.c b/builtin/replace.c index d2adc8ab61..134f738a45 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -17,6 +17,7 @@ #include "refs.h" #include "parse-options.h" #include "run-command.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 d8c52cc6ed..f99f32d580 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -24,6 +24,7 @@ #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" diff --git a/builtin/rev-list.c b/builtin/rev-list.c index a3dbbb6338..c17f0282ae 100644 --- a/builtin/rev-list.c +++ b/builtin/rev-list.c @@ -10,6 +10,7 @@ #include "list-objects-filter.h" #include "list-objects-filter-options.h" #include "object.h" +#include "object-name.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 090bf33510..34b9d92fb1 100644 --- a/builtin/sparse-checkout.c +++ b/builtin/sparse-checkout.c @@ -4,6 +4,7 @@ #include "dir.h" #include "environment.h" #include "gettext.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 14194b13bd..6442b5e20a 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 8337703715..1f087d7bed 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -24,6 +24,7 @@ #include "revision.h" #include "diffcore.h" #include "diff.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 3e801f54a0..88a2590230 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -14,6 +14,7 @@ #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 314761b0b4..21082ceb60 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/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/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 944dd40f94..69132bba31 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -7,6 +7,7 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "parse-options.h" #include "strvec.h" #include "branch.h" diff --git a/cache.h b/cache.h index 66705dd469..21db5da39a 100644 --- a/cache.h +++ b/cache.h @@ -687,24 +687,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 @@ -806,94 +788,6 @@ 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, @@ -907,10 +801,6 @@ void *read_object_with_reference(struct repository *r, 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); diff --git a/checkout.c b/checkout.c index 1247b88224..9235073fc0 100644 --- a/checkout.c +++ b/checkout.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "object-name.h" #include "remote.h" #include "refspec.h" #include "checkout.h" diff --git a/combine-diff.c b/combine-diff.c index 6586e4508d..cd5f39f22f 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -7,6 +7,7 @@ #include "diffcore.h" #include "environment.h" #include "hex.h" +#include "object-name.h" #include "quote.h" #include "xdiff-interface.h" #include "xdiff/xmacros.h" diff --git a/commit.c b/commit.c index 6d844da9a6..bad31c423a 100644 --- a/commit.c +++ b/commit.c @@ -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/config.c b/config.c index 9e74b5aec7..aac439530e 100644 --- a/config.c +++ b/config.c @@ -23,6 +23,7 @@ #include "quote.h" #include "hashmap.h" #include "string-list.h" +#include "object-name.h" #include "object-store.h" #include "utf8.h" #include "dir.h" diff --git a/diff-lib.c b/diff-lib.c index 8b5cca96ac..d292405a26 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -8,6 +8,7 @@ #include "diffcore.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "revision.h" #include "cache-tree.h" #include "unpack-trees.h" diff --git a/diff.c b/diff.c index 89cd0b17da..9e6ad94bc6 100644 --- a/diff.c +++ b/diff.c @@ -35,6 +35,7 @@ #include "help.h" #include "promisor-remote.h" #include "dir.h" +#include "object-name.h" #include "setup.h" #include "strmap.h" #include "wrapper.h" diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c index 1886c92ddb..21019c932b 100644 --- a/fmt-merge-msg.c +++ b/fmt-merge-msg.c @@ -3,6 +3,7 @@ #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/list-objects-filter.c b/list-objects-filter.c index 298ca08711..8b2a45e507 100644 --- a/list-objects-filter.c +++ b/list-objects-filter.c @@ -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/log-tree.c b/log-tree.c index 627c711f70..f0e885635e 100644 --- a/log-tree.c +++ b/log-tree.c @@ -4,6 +4,7 @@ #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 14f2c0f62a..d62d7bf0e7 100644 --- a/mailmap.c +++ b/mailmap.c @@ -2,6 +2,7 @@ #include "environment.h" #include "string-list.h" #include "mailmap.h" +#include "object-name.h" #include "object-store.h" #include "setup.h" diff --git a/merge-ort.c b/merge-ort.c index 1008684fbb..2c6a9ed9a4 100644 --- a/merge-ort.c +++ b/merge-ort.c @@ -32,6 +32,7 @@ #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" diff --git a/merge-recursive.c b/merge-recursive.c index ed5534eb57..748a6799a3 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -22,6 +22,7 @@ #include "hex.h" #include "ll-merge.h" #include "lockfile.h" +#include "object-name.h" #include "object-store.h" #include "repository.h" #include "revision.h" diff --git a/notes-merge.c b/notes-merge.c index 0258f87d21..b496b77d9d 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -3,6 +3,7 @@ #include "commit.h" #include "gettext.h" #include "refs.h" +#include "object-name.h" #include "object-store.h" #include "repository.h" #include "diff.h" diff --git a/notes.c b/notes.c index 45fb7f22d1..c07bcbe348 100644 --- a/notes.c +++ b/notes.c @@ -3,6 +3,7 @@ #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-name.c b/object-name.c index ff647d6c7b..3cd5b32729 100644 --- a/object-name.c +++ b/object-name.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "object-name.h" #include "advice.h" #include "config.h" #include "environment.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/parse-options-cb.c b/parse-options-cb.c index 666c212979..b4df4bcebe 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -6,6 +6,7 @@ #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/range-diff.c b/range-diff.c index d1ed3b8ee5..a2994331a1 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" diff --git a/read-cache.c b/read-cache.c index 4ada6d62b9..cbbfc030da 100644 --- a/read-cache.c +++ b/read-cache.c @@ -22,6 +22,7 @@ #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" diff --git a/rebase-interactive.c b/rebase-interactive.c index 79ed61b9fa..48467a7bc4 100644 --- a/rebase-interactive.c +++ b/rebase-interactive.c @@ -8,6 +8,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 1c6174c8ae..57a5884aec 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -6,6 +6,7 @@ #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" diff --git a/refs.c b/refs.c index cfced6f174..979ed3fbed 100644 --- a/refs.c +++ b/refs.c @@ -16,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/remote.c b/remote.c index 6599d52de2..3afedce593 100644 --- a/remote.c +++ b/remote.c @@ -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/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/revision.c b/revision.c index 7c34c93885..7438b50e26 100644 --- a/revision.c +++ b/revision.c @@ -4,6 +4,7 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "object-store.h" #include "tag.h" #include "blob.h" diff --git a/sequencer.c b/sequencer.c index eaba379e3a..22b287be98 100644 --- a/sequencer.c +++ b/sequencer.c @@ -8,6 +8,7 @@ #include "hex.h" #include "lockfile.h" #include "dir.h" +#include "object-name.h" #include "object-store.h" #include "object.h" #include "commit.h" diff --git a/setup.c b/setup.c index 3bb7a9fff6..8a297b3cb5 100644 --- a/setup.c +++ b/setup.c @@ -2,6 +2,7 @@ #include "abspath.h" #include "environment.h" #include "gettext.h" +#include "object-name.h" #include "repository.h" #include "config.h" #include "dir.h" diff --git a/strbuf.c b/strbuf.c index 70a83e7980..1b93d9d3c4 100644 --- a/strbuf.c +++ b/strbuf.c @@ -4,6 +4,7 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-name.h" #include "refs.h" #include "string-list.h" #include "utf8.h" diff --git a/submodule-config.c b/submodule-config.c index ecf0fcf007..252b90aa43 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -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 58c9d5e567..4f403b9eef 100644 --- a/submodule.c +++ b/submodule.c @@ -24,6 +24,7 @@ #include "remote.h" #include "worktree.h" #include "parse-options.h" +#include "object-name.h" #include "object-store.h" #include "commit-reach.h" #include "setup.h" 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-match-trees.c b/t/helper/test-match-trees.c index 7066f3c71d..3808e1ac38 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-oidmap.c b/t/helper/test-oidmap.c index e2eb25ecde..bf4fcfe6ef 100644 --- a/t/helper/test-oidmap.c +++ b/t/helper/test-oidmap.c @@ -1,6 +1,7 @@ #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-reach.c b/t/helper/test-reach.c index b0deaa106a..d4fa33ae75 100644 --- a/t/helper/test-reach.c +++ b/t/helper/test-reach.c @@ -6,6 +6,7 @@ #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 66063b58de..4758c8654e 100644 --- a/t/helper/test-submodule-config.c +++ b/t/helper/test-submodule-config.c @@ -1,6 +1,7 @@ #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..b9fc2fc992 100644 --- a/tag.c +++ b/tag.c @@ -1,6 +1,7 @@ #include "cache.h" #include "environment.h" #include "tag.h" +#include "object-name.h" #include "object-store.h" #include "commit.h" #include "tree.h" diff --git a/transport-helper.c b/transport-helper.c index 76d146ee88..ca8bec04bb 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -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 82bf2496ba..7374cfd1fa 100644 --- a/transport.c +++ b/transport.c @@ -26,6 +26,7 @@ #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.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/wt-status.c b/wt-status.c index 47f223c0f8..97b9c1c035 100644 --- a/wt-status.c +++ b/wt-status.c @@ -8,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" From e93fc5d721738de978ef06acb62daa3df3c40625 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:50 -0700 Subject: [PATCH 09/24] treewide: remove cache.h inclusion due to object-name.h changes Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- branch.c | 1 - checkout.c | 3 ++- fmt-merge-msg.c | 2 +- mailmap.c | 2 +- notes.c | 2 +- refs.c | 2 +- remote.c | 2 +- setup.c | 2 +- strbuf.c | 2 +- t/helper/test-oidmap.c | 1 - t/helper/test-reach.c | 1 - t/helper/test-submodule-config.c | 1 - transport-helper.c | 2 +- 13 files changed, 10 insertions(+), 13 deletions(-) diff --git a/branch.c b/branch.c index f29743b161..7df982693a 100644 --- a/branch.c +++ b/branch.c @@ -1,5 +1,4 @@ #include "git-compat-util.h" -#include "cache.h" #include "advice.h" #include "config.h" #include "branch.h" diff --git a/checkout.c b/checkout.c index 9235073fc0..04238b2713 100644 --- a/checkout.c +++ b/checkout.c @@ -1,9 +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/fmt-merge-msg.c b/fmt-merge-msg.c index 21019c932b..5af0d4715b 100644 --- a/fmt-merge-msg.c +++ b/fmt-merge-msg.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "config.h" #include "environment.h" diff --git a/mailmap.c b/mailmap.c index d62d7bf0e7..28d389c1f9 100644 --- a/mailmap.c +++ b/mailmap.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "environment.h" #include "string-list.h" #include "mailmap.h" diff --git a/notes.c b/notes.c index c07bcbe348..02f1aa39ae 100644 --- a/notes.c +++ b/notes.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "environment.h" #include "hex.h" diff --git a/refs.c b/refs.c index 979ed3fbed..d2a98e1c21 100644 --- a/refs.c +++ b/refs.c @@ -2,7 +2,7 @@ * 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" diff --git a/remote.c b/remote.c index 3afedce593..2947743d60 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" diff --git a/setup.c b/setup.c index 8a297b3cb5..a546da755f 100644 --- a/setup.c +++ b/setup.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "environment.h" #include "gettext.h" diff --git a/strbuf.c b/strbuf.c index 1b93d9d3c4..b2e3735ba8 100644 --- a/strbuf.c +++ b/strbuf.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "alloc.h" #include "environment.h" diff --git a/t/helper/test-oidmap.c b/t/helper/test-oidmap.c index bf4fcfe6ef..de6ab77fda 100644 --- a/t/helper/test-oidmap.c +++ b/t/helper/test-oidmap.c @@ -1,5 +1,4 @@ #include "test-tool.h" -#include "cache.h" #include "hex.h" #include "object-name.h" #include "oidmap.h" diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c index d4fa33ae75..5b6f217441 100644 --- a/t/helper/test-reach.c +++ b/t/helper/test-reach.c @@ -1,5 +1,4 @@ #include "test-tool.h" -#include "cache.h" #include "alloc.h" #include "commit.h" #include "commit-reach.h" diff --git a/t/helper/test-submodule-config.c b/t/helper/test-submodule-config.c index 4758c8654e..c7c7fdbea9 100644 --- a/t/helper/test-submodule-config.c +++ b/t/helper/test-submodule-config.c @@ -1,5 +1,4 @@ #include "test-tool.h" -#include "cache.h" #include "config.h" #include "object-name.h" #include "setup.h" diff --git a/transport-helper.c b/transport-helper.c index ca8bec04bb..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" From d88dbaa71864c42df1394be25234d7c187a12f48 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:51 -0700 Subject: [PATCH 10/24] git-zlib: move declarations for git-zlib functions from cache.h Move functions from cache.h for zlib.c into a new header file. Since adding a "zlib.h" would cause issues with the real zlib, rename zlib.c to git-zlib.c while we are at it. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- Makefile | 2 +- archive-tar.c | 1 + archive-zip.c | 1 + builtin/unpack-objects.c | 1 + cache.h | 25 +------------------------ zlib.c => git-zlib.c | 3 ++- git-zlib.h | 28 ++++++++++++++++++++++++++++ http-backend.c | 1 + http.h | 3 +++ 9 files changed, 39 insertions(+), 26 deletions(-) rename zlib.c => git-zlib.c (99%) create mode 100644 git-zlib.h diff --git a/Makefile b/Makefile index 50ee51fde3..0c367881bf 100644 --- a/Makefile +++ b/Makefile @@ -1036,6 +1036,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 @@ -1196,7 +1197,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/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/builtin/unpack-objects.c b/builtin/unpack-objects.c index f2c1323e66..ddbdb3dd22 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/cache.h b/cache.h index 21db5da39a..c06778b69c 100644 --- a/cache.h +++ b/cache.h @@ -3,6 +3,7 @@ #include "git-compat-util.h" #include "strbuf.h" +#include "git-zlib.h" #include "hashmap.h" #include "list.h" #include "gettext.h" @@ -14,30 +15,6 @@ #include "repository.h" #include "statinfo.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) #else 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/http-backend.c b/http-backend.c index 89aad1b42c..d41b3b9e1e 100644 --- a/http-backend.c +++ b/http-backend.c @@ -2,6 +2,7 @@ #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.h b/http.h index 77c042706c..783b2b09b8 100644 --- a/http.h +++ b/http.h @@ -1,7 +1,10 @@ #ifndef HTTP_H #define HTTP_H +struct packed_git; + #include "cache.h" +#include "git-zlib.h" #include #include From d530c04e2cfec6fccc9b02936b94df26114d6ec9 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:52 -0700 Subject: [PATCH 11/24] treewide: remove cache.h inclusion due to git-zlib changes This actually only affects http-backend.c, but the git-zlib changes are going to be instrumental in pulling out an object-file.h which will help with several more files. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- http-backend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/http-backend.c b/http-backend.c index d41b3b9e1e..ac146d85c5 100644 --- a/http-backend.c +++ b/http-backend.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "alloc.h" #include "config.h" #include "environment.h" From 87bed17907b2cb9a9581a5b8b16b8da264c2a2a8 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:53 -0700 Subject: [PATCH 12/24] object-file.h: move declarations for object-file.c functions from cache.h Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- apply.c | 1 + builtin/bugreport.c | 1 + builtin/cat-file.c | 1 + builtin/clone.c | 1 + builtin/credential-cache--daemon.c | 1 + builtin/diagnose.c | 1 + builtin/difftool.c | 1 + builtin/fast-export.c | 1 + builtin/fast-import.c | 1 + builtin/fetch-pack.c | 1 + builtin/fsck.c | 1 + builtin/gc.c | 1 + builtin/grep.c | 1 + builtin/hash-object.c | 1 + builtin/index-pack.c | 1 + builtin/init-db.c | 1 + builtin/log.c | 1 + builtin/mktag.c | 1 + builtin/mv.c | 1 + builtin/pack-objects.c | 1 + builtin/prune.c | 1 + builtin/rebase.c | 1 + builtin/replace.c | 1 + builtin/rev-list.c | 1 + builtin/sparse-checkout.c | 1 + builtin/submodule--helper.c | 1 + builtin/update-index.c | 1 + builtin/worktree.c | 1 + bulk-checkin.c | 1 + cache-tree.c | 1 + cache.h | 123 --------------------------- commit-graph.c | 1 + diff.c | 1 + dir.c | 1 + environment.c | 1 + http.c | 1 + merge-recursive.c | 1 + midx.c | 1 + notes-merge.c | 1 + object-file.c | 1 + object-file.h | 129 +++++++++++++++++++++++++++++ object.c | 1 + pack-bitmap.c | 1 + pack-check.c | 1 + pack-mtimes.c | 1 + pack-revindex.c | 1 + packfile.c | 1 + read-cache.c | 1 + refs/files-backend.c | 1 + rerere.c | 1 + revision.c | 1 + sequencer.c | 1 + server-info.c | 1 + streaming.c | 1 + submodule.c | 1 + tmp-objdir.c | 1 + tree-walk.c | 1 + 57 files changed, 184 insertions(+), 123 deletions(-) create mode 100644 object-file.h diff --git a/apply.c b/apply.c index 7e40f53ec4..2868cef5dd 100644 --- a/apply.c +++ b/apply.c @@ -23,6 +23,7 @@ #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/builtin/bugreport.c b/builtin/bugreport.c index 52955e1d38..03fb053691 100644 --- a/builtin/bugreport.c +++ b/builtin/bugreport.c @@ -8,6 +8,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 60b7a55dfc..0bafc14e6c 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -20,6 +20,7 @@ #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" diff --git a/builtin/clone.c b/builtin/clone.c index f1e8aa3f27..c7fdffb484 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -21,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" 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/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 e010a21bfb..3ffb0524be 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 0bb779deb6..c7835ea079 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 31b8732128..9f90f5b9e4 100644 --- a/builtin/fast-import.c +++ b/builtin/fast-import.c @@ -19,6 +19,7 @@ #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" diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index 60e5a10ffc..664ac1ec0e 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/fsck.c b/builtin/fsck.c index 04bc71d148..35a6de3cdb 100644 --- a/builtin/fsck.c +++ b/builtin/fsck.c @@ -19,6 +19,7 @@ #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" diff --git a/builtin/gc.c b/builtin/gc.c index 000a2ef5e1..b95154fba1 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" diff --git a/builtin/grep.c b/builtin/grep.c index f66e14389e..fb11be6075 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -26,6 +26,7 @@ #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" 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/index-pack.c b/builtin/index-pack.c index 5adfb2521c..0f59cf8aa0 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -18,6 +18,7 @@ #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" 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 5cdc2276cc..b6246c7042 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -12,6 +12,7 @@ #include "gettext.h" #include "hex.h" #include "refs.h" +#include "object-file.h" #include "object-name.h" #include "object-store.h" #include "color.h" diff --git a/builtin/mktag.c b/builtin/mktag.c index f9d9a38452..f33d267fcb 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 8f7770aa32..32935af48e 100644 --- a/builtin/mv.c +++ b/builtin/mv.c @@ -11,6 +11,7 @@ #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/pack-objects.c b/builtin/pack-objects.c index 69c6542861..68c914a8e1 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 09891832fb..5dc9b20720 100644 --- a/builtin/prune.c +++ b/builtin/prune.c @@ -11,6 +11,7 @@ #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/rebase.c b/builtin/rebase.c index ff5dd77608..34fea4d822 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -21,6 +21,7 @@ #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" diff --git a/builtin/replace.c b/builtin/replace.c index 134f738a45..f4b3a8efb2 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -17,6 +17,7 @@ #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" diff --git a/builtin/rev-list.c b/builtin/rev-list.c index c17f0282ae..6dc8be492a 100644 --- a/builtin/rev-list.c +++ b/builtin/rev-list.c @@ -11,6 +11,7 @@ #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/sparse-checkout.c b/builtin/sparse-checkout.c index 34b9d92fb1..4de37d07fd 100644 --- a/builtin/sparse-checkout.c +++ b/builtin/sparse-checkout.c @@ -4,6 +4,7 @@ #include "dir.h" #include "environment.h" #include "gettext.h" +#include "object-file.h" #include "object-name.h" #include "parse-options.h" #include "pathspec.h" diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c index 1f087d7bed..5d999f814e 100644 --- a/builtin/submodule--helper.c +++ b/builtin/submodule--helper.c @@ -24,6 +24,7 @@ #include "revision.h" #include "diffcore.h" #include "diff.h" +#include "object-file.h" #include "object-name.h" #include "object-store.h" #include "advice.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/worktree.c b/builtin/worktree.c index 69132bba31..0621f6f708 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -7,6 +7,7 @@ #include "environment.h" #include "gettext.h" #include "hex.h" +#include "object-file.h" #include "object-name.h" #include "parse-options.h" #include "strvec.h" diff --git a/bulk-checkin.c b/bulk-checkin.c index 6362b6aabc..af15f8a9af 100644 --- a/bulk-checkin.c +++ b/bulk-checkin.c @@ -15,6 +15,7 @@ #include "string-list.h" #include "tmp-objdir.h" #include "packfile.h" +#include "object-file.h" #include "object-store.h" static int odb_transaction_nesting; diff --git a/cache-tree.c b/cache-tree.c index 39f0c74472..ebfe649b33 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -7,6 +7,7 @@ #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" diff --git a/cache.h b/cache.h index c06778b69c..89987cca22 100644 --- a/cache.h +++ b/cache.h @@ -3,7 +3,6 @@ #include "git-compat-util.h" #include "strbuf.h" -#include "git-zlib.h" #include "hashmap.h" #include "list.h" #include "gettext.h" @@ -596,13 +595,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. @@ -664,107 +656,6 @@ extern int quote_path_fully; #define DATA_CHANGED 0x0020 #define TYPE_CHANGED 0x0040 -/* - * 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); - 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, @@ -772,12 +663,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); - const char *git_editor(void); const char *git_sequence_editor(void); const char *git_pager(int stdout_is_tty); @@ -819,14 +704,6 @@ 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); diff --git a/commit-graph.c b/commit-graph.c index fe9a8b2342..c20e73ceeb 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -11,6 +11,7 @@ #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" diff --git a/diff.c b/diff.c index 9e6ad94bc6..f8e0d3b5c5 100644 --- a/diff.c +++ b/diff.c @@ -35,6 +35,7 @@ #include "help.h" #include "promisor-remote.h" #include "dir.h" +#include "object-file.h" #include "object-name.h" #include "setup.h" #include "strmap.h" diff --git a/dir.c b/dir.c index d1f1b1ef76..aa840995c4 100644 --- a/dir.c +++ b/dir.c @@ -13,6 +13,7 @@ #include "dir.h" #include "environment.h" #include "gettext.h" +#include "object-file.h" #include "object-store.h" #include "attr.h" #include "refs.h" diff --git a/environment.c b/environment.c index e57292eccc..39efa49fe3 100644 --- a/environment.c +++ b/environment.c @@ -19,6 +19,7 @@ #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" diff --git a/http.c b/http.c index 0212c0ad3b..c3916ceb4d 100644 --- a/http.c +++ b/http.c @@ -17,6 +17,7 @@ #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/merge-recursive.c b/merge-recursive.c index 748a6799a3..9875bdb11c 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -22,6 +22,7 @@ #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" 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/notes-merge.c b/notes-merge.c index b496b77d9d..cc9538ac5c 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -3,6 +3,7 @@ #include "commit.h" #include "gettext.h" #include "refs.h" +#include "object-file.h" #include "object-name.h" #include "object-store.h" #include "repository.h" diff --git a/object-file.c b/object-file.c index a4331e0da6..8163ddbadd 100644 --- a/object-file.c +++ b/object-file.c @@ -36,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.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/pack-bitmap.c b/pack-bitmap.c index eba838d24e..1371f17d22 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -16,6 +16,7 @@ #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..40d88bc5eb 100644 --- a/pack-check.c +++ b/pack-check.c @@ -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..0096ace080 100644 --- a/pack-mtimes.c +++ b/pack-mtimes.c @@ -1,6 +1,7 @@ #include "cache.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 9f9927d947..22a1958a1f 100644 --- a/pack-revindex.c +++ b/pack-revindex.c @@ -1,6 +1,7 @@ #include "cache.h" #include "gettext.h" #include "pack-revindex.h" +#include "object-file.h" #include "object-store.h" #include "packfile.h" #include "trace2.h" diff --git a/packfile.c b/packfile.c index 02afbe7713..9ae2278c22 100644 --- a/packfile.c +++ b/packfile.c @@ -18,6 +18,7 @@ #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" diff --git a/read-cache.c b/read-cache.c index cbbfc030da..f225bf44cd 100644 --- a/read-cache.c +++ b/read-cache.c @@ -14,6 +14,7 @@ #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" 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/rerere.c b/rerere.c index 5516e336d0..093c0f6f99 100644 --- a/rerere.c +++ b/rerere.c @@ -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/revision.c b/revision.c index 7438b50e26..3d86e07abb 100644 --- a/revision.c +++ b/revision.c @@ -5,6 +5,7 @@ #include "gettext.h" #include "hex.h" #include "object-name.h" +#include "object-file.h" #include "object-store.h" #include "tag.h" #include "blob.h" diff --git a/sequencer.c b/sequencer.c index 22b287be98..be10249fd0 100644 --- a/sequencer.c +++ b/sequencer.c @@ -8,6 +8,7 @@ #include "hex.h" #include "lockfile.h" #include "dir.h" +#include "object-file.h" #include "object-name.h" #include "object-store.h" #include "object.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/streaming.c b/streaming.c index 27e014d8b2..b3415724ee 100644 --- a/streaming.c +++ b/streaming.c @@ -6,6 +6,7 @@ #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.c b/submodule.c index 4f403b9eef..d09bc22d4b 100644 --- a/submodule.c +++ b/submodule.c @@ -24,6 +24,7 @@ #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" diff --git a/tmp-objdir.c b/tmp-objdir.c index 5adad1925d..fff7ff42db 100644 --- a/tmp-objdir.c +++ b/tmp-objdir.c @@ -4,6 +4,7 @@ #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/tree-walk.c b/tree-walk.c index 59add24c8e..2993c48c2f 100644 --- a/tree-walk.c +++ b/tree-walk.c @@ -4,6 +4,7 @@ #include "dir.h" #include "gettext.h" #include "hex.h" +#include "object-file.h" #include "object-store.h" #include "trace2.h" #include "tree.h" From b6fdc44c8441d04c6659252cdf9adae240339e17 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:54 -0700 Subject: [PATCH 13/24] treewide: remove cache.h inclusion due to object-file.h changes Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- bulk-checkin.c | 2 +- commit-graph.c | 2 +- http-fetch.c | 2 +- http-walker.c | 2 +- http.h | 1 - notes-merge.c | 2 +- pack-bitmap.c | 2 +- pack-check.c | 2 +- pack-mtimes.c | 2 +- pack-revindex.c | 2 +- streaming.c | 2 +- tmp-objdir.c | 2 +- 12 files changed, 11 insertions(+), 12 deletions(-) diff --git a/bulk-checkin.c b/bulk-checkin.c index af15f8a9af..9192298db6 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" diff --git a/commit-graph.c b/commit-graph.c index c20e73ceeb..0c4f226644 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" 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-walker.c b/http-walker.c index 4588e6a340..3b41f5654b 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.h b/http.h index 783b2b09b8..3a409bccd4 100644 --- a/http.h +++ b/http.h @@ -3,7 +3,6 @@ struct packed_git; -#include "cache.h" #include "git-zlib.h" #include diff --git a/notes-merge.c b/notes-merge.c index cc9538ac5c..233e49e319 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "advice.h" #include "commit.h" #include "gettext.h" diff --git a/pack-bitmap.c b/pack-bitmap.c index 1371f17d22..48fc2ec76d 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" diff --git a/pack-check.c b/pack-check.c index 40d88bc5eb..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" diff --git a/pack-mtimes.c b/pack-mtimes.c index 0096ace080..020a37f8fe 100644 --- a/pack-mtimes.c +++ b/pack-mtimes.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "pack-mtimes.h" #include "object-file.h" diff --git a/pack-revindex.c b/pack-revindex.c index 22a1958a1f..4d9bb41b4d 100644 --- a/pack-revindex.c +++ b/pack-revindex.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "gettext.h" #include "pack-revindex.h" #include "object-file.h" diff --git a/streaming.c b/streaming.c index b3415724ee..21e39585e8 100644 --- a/streaming.c +++ b/streaming.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2011, Google Inc. */ -#include "cache.h" +#include "git-compat-util.h" #include "convert.h" #include "environment.h" #include "streaming.h" diff --git a/tmp-objdir.c b/tmp-objdir.c index fff7ff42db..c33a554f92 100644 --- a/tmp-objdir.c +++ b/tmp-objdir.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "tmp-objdir.h" #include "abspath.h" #include "chdir-notify.h" From 8876ea83a74b45046c3dabdd5f55f07852bb98ae Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:55 -0700 Subject: [PATCH 14/24] object.h: move some inline functions and defines from cache.h The object_type() inline function is very tied to the enum object_type declaration within object.h, and just seemed to make more sense to live there. That makes S_ISGITLINK and some other defines make sense to go with it, as well as the create_ce_mode() and canon_mode() inline functions. Move all these inline functions and defines from cache.h to object.h. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- cache.h | 42 ------------------------------------------ object.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 42 deletions(-) diff --git a/cache.h b/cache.h index 89987cca22..394e8d0125 100644 --- a/cache.h +++ b/cache.h @@ -28,18 +28,6 @@ #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. * @@ -155,8 +143,6 @@ 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; @@ -197,17 +183,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) { @@ -234,16 +209,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, @@ -414,13 +379,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 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. */ From d812c3b6a0b41d48ce68f971d9cec50676048863 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:56 -0700 Subject: [PATCH 15/24] treewide: remove cache.h inclusion due to object.h changes Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- bisect.c | 2 +- bundle.c | 2 +- commit.c | 2 +- delta-islands.c | 2 +- diff-no-index.c | 2 +- fsck.c | 2 +- http-push.c | 2 +- list-objects-filter.c | 2 +- list-objects.c | 2 +- log-tree.c | 2 +- pack-bitmap-write.c | 2 +- parse-options-cb.c | 1 - rebase-interactive.c | 2 +- submodule-config.c | 2 +- tag.c | 2 +- transport.c | 2 +- walker.c | 2 +- 17 files changed, 16 insertions(+), 17 deletions(-) diff --git a/bisect.c b/bisect.c index e708e8b6aa..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" 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/commit.c b/commit.c index bad31c423a..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" 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-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/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/http-push.c b/http-push.c index a8af6c0f69..637a4e91f7 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/list-objects-filter.c b/list-objects-filter.c index 8b2a45e507..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" 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/log-tree.c b/log-tree.c index f0e885635e..b5cf3d8439 100644 --- a/log-tree.c +++ b/log-tree.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "commit-reach.h" #include "config.h" #include "diff.h" 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/parse-options-cb.c b/parse-options-cb.c index b4df4bcebe..26a4c7d08a 100644 --- a/parse-options-cb.c +++ b/parse-options-cb.c @@ -1,7 +1,6 @@ #include "git-compat-util.h" #include "parse-options.h" #include "branch.h" -#include "cache.h" #include "commit.h" #include "color.h" #include "environment.h" diff --git a/rebase-interactive.c b/rebase-interactive.c index 48467a7bc4..6ff12d7be2 100644 --- a/rebase-interactive.c +++ b/rebase-interactive.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "commit.h" #include "environment.h" #include "gettext.h" diff --git a/submodule-config.c b/submodule-config.c index 252b90aa43..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" diff --git a/tag.c b/tag.c index b9fc2fc992..96dbd5b2d5 100644 --- a/tag.c +++ b/tag.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "environment.h" #include "tag.h" #include "object-name.h" diff --git a/transport.c b/transport.c index 7374cfd1fa..8d3ad8022a 100644 --- a/transport.c +++ b/transport.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "advice.h" #include "alloc.h" #include "config.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" From 4e120823a345cf348a052683d726c90bc4b256ca Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:57 -0700 Subject: [PATCH 16/24] editor: move editor-related functions and declarations into common file cache.h and strbuf.[ch] had editor-related functions. Move these into editor.[ch]. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- add-patch.c | 1 + builtin/add.c | 1 + builtin/am.c | 1 + builtin/branch.c | 1 + builtin/bugreport.c | 1 + builtin/commit.c | 1 + builtin/config.c | 1 + builtin/merge.c | 1 + builtin/notes.c | 1 + builtin/replace.c | 1 + builtin/tag.c | 1 + builtin/var.c | 1 + cache.h | 3 --- color.c | 1 + editor.c | 30 ++++++++++++++++++++++++++++++ editor.h | 34 ++++++++++++++++++++++++++++++++++ pager.c | 1 + rebase-interactive.c | 1 + sideband.c | 1 + strbuf.c | 28 ---------------------------- strbuf.h | 24 ------------------------ 21 files changed, 80 insertions(+), 55 deletions(-) create mode 100644 editor.h diff --git a/add-patch.c b/add-patch.c index b01ba8fa81..8d770d203f 100644 --- a/add-patch.c +++ b/add-patch.c @@ -2,6 +2,7 @@ #include "add-interactive.h" #include "advice.h" #include "alloc.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "object-name.h" diff --git a/builtin/add.c b/builtin/add.c index d3c51e2814..76cc026a68 100644 --- a/builtin/add.c +++ b/builtin/add.c @@ -9,6 +9,7 @@ #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 0d7ee28bdd..f7a065e529 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -9,6 +9,7 @@ #include "advice.h" #include "config.h" #include "builtin.h" +#include "editor.h" #include "environment.h" #include "exec-cmd.h" #include "gettext.h" diff --git a/builtin/branch.c b/builtin/branch.c index 7c1c872708..1fb11d55e6 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -8,6 +8,7 @@ #include "cache.h" #include "config.h" #include "color.h" +#include "editor.h" #include "environment.h" #include "refs.h" #include "commit.h" diff --git a/builtin/bugreport.c b/builtin/bugreport.c index 03fb053691..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" diff --git a/builtin/commit.c b/builtin/commit.c index 682f47c8d5..e67c4be221 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -13,6 +13,7 @@ #include "cache-tree.h" #include "color.h" #include "dir.h" +#include "editor.h" #include "environment.h" #include "builtin.h" #include "diff.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/merge.c b/builtin/merge.c index 693f185d4d..8da3e46abb 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -12,6 +12,7 @@ #include "advice.h" #include "alloc.h" #include "config.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "hex.h" diff --git a/builtin/notes.c b/builtin/notes.c index 896140b905..d5788352b6 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -10,6 +10,7 @@ #include "cache.h" #include "config.h" #include "builtin.h" +#include "editor.h" #include "gettext.h" #include "hex.h" #include "notes.h" diff --git a/builtin/replace.c b/builtin/replace.c index f4b3a8efb2..981f189443 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -11,6 +11,7 @@ #include "cache.h" #include "config.h" #include "builtin.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "hex.h" diff --git a/builtin/tag.c b/builtin/tag.c index 88a2590230..7d189a4a5d 100644 --- a/builtin/tag.c +++ b/builtin/tag.c @@ -10,6 +10,7 @@ #include "advice.h" #include "config.h" #include "builtin.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "hex.h" diff --git a/builtin/var.c b/builtin/var.c index d9943be9af..90616cf65a 100644 --- a/builtin/var.c +++ b/builtin/var.c @@ -5,6 +5,7 @@ */ #include "builtin.h" #include "config.h" +#include "editor.h" #include "ident.h" #include "refs.h" diff --git a/cache.h b/cache.h index 394e8d0125..97ddf4094a 100644 --- a/cache.h +++ b/cache.h @@ -621,10 +621,7 @@ 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); -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; diff --git a/color.c b/color.c index 672dcbb73a..a8e8d5202a 100644 --- a/color.c +++ b/color.c @@ -1,6 +1,7 @@ #include "cache.h" #include "config.h" #include "color.h" +#include "editor.h" #include "gettext.h" #include "hex.h" diff --git a/editor.c b/editor.c index 3bea3ef72f..12025dfec3 100644 --- a/editor.c +++ b/editor.c @@ -2,12 +2,14 @@ #include "abspath.h" #include "advice.h" #include "config.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "strbuf.h" #include "strvec.h" #include "run-command.h" #include "sigchain.h" +#include "wrapper.h" #ifndef DEFAULT_EDITOR #define DEFAULT_EDITOR "vi" @@ -130,3 +132,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/pager.c b/pager.c index b66bbff278..6367e8ef86 100644 --- a/pager.c +++ b/pager.c @@ -1,5 +1,6 @@ #include "cache.h" #include "config.h" +#include "editor.h" #include "run-command.h" #include "sigchain.h" #include "alias.h" diff --git a/rebase-interactive.c b/rebase-interactive.c index 6ff12d7be2..789f407361 100644 --- a/rebase-interactive.c +++ b/rebase-interactive.c @@ -1,5 +1,6 @@ #include "git-compat-util.h" #include "commit.h" +#include "editor.h" #include "environment.h" #include "gettext.h" #include "sequencer.h" diff --git a/sideband.c b/sideband.c index 0af582858b..25e2a18571 100644 --- a/sideband.c +++ b/sideband.c @@ -1,6 +1,7 @@ #include "cache.h" #include "color.h" #include "config.h" +#include "editor.h" #include "gettext.h" #include "sideband.h" #include "help.h" diff --git a/strbuf.c b/strbuf.c index b2e3735ba8..729378ec82 100644 --- a/strbuf.c +++ b/strbuf.c @@ -1180,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 From 0e8d4b9db76b6f8712e3be5b7dabe7fd1092921b Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:58 -0700 Subject: [PATCH 17/24] treewide: remove cache.h inclusion due to editor.h changes This actually only affects sideband.c, but helps towards removing cache.h inclusion in conjunction with some of the upcoming patches that will be applied. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- sideband.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sideband.c b/sideband.c index 25e2a18571..6cbfd391c4 100644 --- a/sideband.c +++ b/sideband.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "color.h" #include "config.h" #include "editor.h" From ca4eed708d8cb5c7b585578d3b4170e8adaa920f Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:41:59 -0700 Subject: [PATCH 18/24] pager.h: move declarations for pager.c functions from cache.h Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- builtin/am.c | 1 + builtin/blame.c | 1 + builtin/fetch.c | 1 + builtin/grep.c | 1 + builtin/help.c | 1 + builtin/log.c | 1 + builtin/name-rev.c | 1 + builtin/var.c | 1 + cache.h | 13 ------------- color.c | 1 + column.c | 1 + config.c | 1 + date.c | 1 + diff.c | 1 + editor.c | 1 + environment.c | 1 - git.c | 1 + pager.c | 3 +++ pager.h | 17 +++++++++++++++++ pretty.c | 1 + progress.c | 1 + range-diff.c | 1 + sequencer.c | 1 + 23 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 pager.h diff --git a/builtin/am.c b/builtin/am.c index f7a065e529..5c83f2e003 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -40,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/blame.c b/builtin/blame.c index a628388c2c..2df6039a6e 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -30,6 +30,7 @@ #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/fetch.c b/builtin/fetch.c index 8a8ab6799e..61e8ac113b 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -28,6 +28,7 @@ #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" diff --git a/builtin/grep.c b/builtin/grep.c index fb11be6075..b86c754def 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -30,6 +30,7 @@ #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/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/log.c b/builtin/log.c index b6246c7042..95de51921f 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -15,6 +15,7 @@ #include "object-file.h" #include "object-name.h" #include "object-store.h" +#include "pager.h" #include "color.h" #include "commit.h" #include "diff.h" diff --git a/builtin/name-rev.c b/builtin/name-rev.c index 41fd56b9ba..593f0506a1 100644 --- a/builtin/name-rev.c +++ b/builtin/name-rev.c @@ -9,6 +9,7 @@ #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/var.c b/builtin/var.c index 90616cf65a..aa8150fa92 100644 --- a/builtin/var.c +++ b/builtin/var.c @@ -7,6 +7,7 @@ #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/cache.h b/cache.h index 97ddf4094a..21fd520b04 100644 --- a/cache.h +++ b/cache.h @@ -145,7 +145,6 @@ struct cache_entry { /* Forward structure decls */ struct pathspec; -struct child_process; struct tree; /* @@ -621,8 +620,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); -const char *git_pager(int stdout_is_tty); - struct cache_def { struct strbuf path; int flags; @@ -671,16 +668,6 @@ 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/color.c b/color.c index a8e8d5202a..6031998d3e 100644 --- a/color.c +++ b/color.c @@ -4,6 +4,7 @@ #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..c89c90328a 100644 --- a/column.c +++ b/column.c @@ -2,6 +2,7 @@ #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/config.c b/config.c index aac439530e..11e3295419 100644 --- a/config.c +++ b/config.c @@ -25,6 +25,7 @@ #include "string-list.h" #include "object-name.h" #include "object-store.h" +#include "pager.h" #include "utf8.h" #include "dir.h" #include "color.h" diff --git a/date.c b/date.c index 1fb2cd1b53..e944c8905a 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/diff.c b/diff.c index f8e0d3b5c5..fa86d02319 100644 --- a/diff.c +++ b/diff.c @@ -31,6 +31,7 @@ #include "graph.h" #include "oid-array.h" #include "packfile.h" +#include "pager.h" #include "parse-options.h" #include "help.h" #include "promisor-remote.h" diff --git a/editor.c b/editor.c index 12025dfec3..7c79638549 100644 --- a/editor.c +++ b/editor.c @@ -5,6 +5,7 @@ #include "editor.h" #include "environment.h" #include "gettext.h" +#include "pager.h" #include "strbuf.h" #include "strvec.h" #include "run-command.h" diff --git a/environment.c b/environment.c index 39efa49fe3..8a96997539 100644 --- a/environment.c +++ b/environment.c @@ -59,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/git.c b/git.c index d2bb86e0d3..0241d2cf91 100644 --- a/git.c +++ b/git.c @@ -4,6 +4,7 @@ #include "exec-cmd.h" #include "gettext.h" #include "help.h" +#include "pager.h" #include "run-command.h" #include "alias.h" #include "replace-object.h" diff --git a/pager.c b/pager.c index 6367e8ef86..be78c70664 100644 --- a/pager.c +++ b/pager.c @@ -1,10 +1,13 @@ #include "cache.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/pretty.c b/pretty.c index 76fc4f61e4..c4671603b5 100644 --- a/pretty.c +++ b/pretty.c @@ -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 c5c8514737..96a8e36a52 100644 --- a/progress.c +++ b/progress.c @@ -10,6 +10,7 @@ #define GIT_TEST_PROGRESS_ONLY #include "cache.h" +#include "pager.h" #include "progress.h" #include "strbuf.h" #include "trace.h" diff --git a/range-diff.c b/range-diff.c index a2994331a1..a1e0cffb9f 100644 --- a/range-diff.c +++ b/range-diff.c @@ -11,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/sequencer.c b/sequencer.c index be10249fd0..fcca3b8144 100644 --- a/sequencer.c +++ b/sequencer.c @@ -12,6 +12,7 @@ #include "object-name.h" #include "object-store.h" #include "object.h" +#include "pager.h" #include "commit.h" #include "sequencer.h" #include "tag.h" From 77f091ed9f289e55c9cc48d2d937d52f4f317de9 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:42:00 -0700 Subject: [PATCH 19/24] treewide: remove cache.h inclusion due to pager.h changes Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- column.c | 2 +- editor.c | 2 +- pager.c | 2 +- pretty.c | 2 +- progress.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/column.c b/column.c index c89c90328a..ff2f0abf39 100644 --- a/column.c +++ b/column.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "column.h" #include "string-list.h" diff --git a/editor.c b/editor.c index 7c79638549..b34e10606d 100644 --- a/editor.c +++ b/editor.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "abspath.h" #include "advice.h" #include "config.h" diff --git a/pager.c b/pager.c index be78c70664..63055d0873 100644 --- a/pager.c +++ b/pager.c @@ -1,4 +1,4 @@ -#include "cache.h" +#include "git-compat-util.h" #include "config.h" #include "editor.h" #include "pager.h" diff --git a/pretty.c b/pretty.c index c4671603b5..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" diff --git a/progress.c b/progress.c index 96a8e36a52..72d5e0c73c 100644 --- a/progress.c +++ b/progress.c @@ -9,7 +9,7 @@ */ #define GIT_TEST_PROGRESS_ONLY -#include "cache.h" +#include "git-compat-util.h" #include "pager.h" #include "progress.h" #include "strbuf.h" From 31dfa17b3b83fcf0ff8ba286167b4225dc7d480d Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:42:01 -0700 Subject: [PATCH 20/24] cache.h: remove unnecessary includes cache.h did not need any of these headers, and nothing that depended upon cache.h needed them either. Simply expunge these includes. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- cache.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cache.h b/cache.h index 21fd520b04..16b5fc9fa3 100644 --- a/cache.h +++ b/cache.h @@ -4,14 +4,10 @@ #include "git-compat-util.h" #include "strbuf.h" #include "hashmap.h" -#include "list.h" #include "gettext.h" #include "string-list.h" -#include "hash.h" -#include "path.h" #include "pathspec.h" #include "object.h" -#include "repository.h" #include "statinfo.h" #if defined(DT_UNKNOWN) && !defined(NO_D_TYPE_IN_DIRENT) From 65156bb7ec6443ba01edcff3691d878c7a04ede0 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:42:02 -0700 Subject: [PATCH 21/24] treewide: remove double forward declaration of read_in_full cache.h's nature of a dumping ground of includes prevented it from being included in some compat/ files, forcing us into a workaround of having a double forward declaration of the read_in_full() function (see commit 14086b0a13 ("compat/pread.c: Add a forward declaration to fix a warning", 2007-11-17)). Now that we have moved functions like read_in_full() from cache.h to wrapper.h, and wrapper.h isn't littered with unrelated and scary #defines, get rid of the extra forward declaration and just have compat/pread.c include wrapper.h. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- builtin/clone.c | 1 + bulk-checkin.c | 1 + combine-diff.c | 1 + compat/pread.c | 1 + git-compat-util.h | 6 ------ grep.c | 1 + pack-write.c | 1 + path.c | 1 + refs/packed-backend.c | 1 + send-pack.c | 1 + setup.c | 1 + upload-pack.c | 1 + 12 files changed, 11 insertions(+), 6 deletions(-) diff --git a/builtin/clone.c b/builtin/clone.c index c7fdffb484..4ed0a1d5aa 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -42,6 +42,7 @@ #include "hook.h" #include "bundle.h" #include "bundle-uri.h" +#include "wrapper.h" /* * Overall FIXMEs: diff --git a/bulk-checkin.c b/bulk-checkin.c index 9192298db6..d843279715 100644 --- a/bulk-checkin.c +++ b/bulk-checkin.c @@ -17,6 +17,7 @@ #include "packfile.h" #include "object-file.h" #include "object-store.h" +#include "wrapper.h" static int odb_transaction_nesting; diff --git a/combine-diff.c b/combine-diff.c index cd5f39f22f..f7e9fb5747 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -16,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/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/git-compat-util.h b/git-compat-util.h index 1e6592624d..4fb771f42a 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -859,12 +859,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/grep.c b/grep.c index bb8796a829..d144b37489 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/pack-write.c b/pack-write.c index d9b460fab4..9c37121be3 100644 --- a/pack-write.c +++ b/pack-write.c @@ -10,6 +10,7 @@ #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/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/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/send-pack.c b/send-pack.c index 72ebb7b61a..351037b07b 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/setup.c b/setup.c index a546da755f..59abc16ba6 100644 --- a/setup.c +++ b/setup.c @@ -12,6 +12,7 @@ #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/upload-pack.c b/upload-pack.c index 0305fb2fbd..e16dee783d 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -32,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 */ From b7b189cd5ae99f336c1185f8f8c27a118314ced1 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:42:03 -0700 Subject: [PATCH 22/24] treewide: reduce includes of cache.h in other headers We had a handful of headers including cache.h that didn't need to anymore. Drop those includes and replace them with includes of smaller files, or forward declarations. However, note that two .c files now need to directly include cache.h, though they should have been including it all along given they are directly using structs defined in it. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- archive.h | 2 +- chdir-notify.c | 3 ++- quote.c | 3 ++- refs/ref-cache.h | 2 +- rerere.c | 2 +- resolve-undo.h | 7 ++++++- revision.c | 2 +- split-index.h | 2 +- 8 files changed, 15 insertions(+), 8 deletions(-) diff --git a/archive.h b/archive.h index f96839ef38..3a4bdfbd07 100644 --- a/archive.h +++ b/archive.h @@ -1,9 +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/chdir-notify.c b/chdir-notify.c index 8e38cd6f3a..0d7bc04607 100644 --- a/chdir-notify.c +++ b/chdir-notify.c @@ -1,7 +1,8 @@ -#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" 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/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/rerere.c b/rerere.c index 093c0f6f99..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" 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 3d86e07abb..43f88eaf56 100644 --- a/revision.c +++ b/revision.c @@ -1,4 +1,4 @@ -#include "git-compat-util.h" +#include "cache.h" #include "alloc.h" #include "config.h" #include "environment.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; From 4711556905f381c01f1fbae205f67cfa673ab44a Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Tue, 11 Apr 2023 00:42:04 -0700 Subject: [PATCH 23/24] mailmap, quote: move declarations of global vars to correct unit Since earlier commits removed the inclusion of cache.h from mailmap.c and quote.c, it feels odd to have the extern declarations of global variables in cache.h rather than the actual header included by the source file. Move these global variable extern declarations from cache.h to mailmap.c and quote.c. Signed-off-by: Elijah Newren Acked-by: Calvin Wan Signed-off-by: Junio C Hamano --- cache.h | 5 ----- config.c | 1 + mailmap.h | 3 +++ quote.h | 2 ++ 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cache.h b/cache.h index 16b5fc9fa3..2f21704da9 100644 --- a/cache.h +++ b/cache.h @@ -599,8 +599,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 @@ -655,9 +653,6 @@ struct pack_entry { /* 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); diff --git a/config.c b/config.c index 11e3295419..9beba19b41 100644 --- a/config.c +++ b/config.c @@ -18,6 +18,7 @@ #include "ident.h" #include "repository.h" #include "lockfile.h" +#include "mailmap.h" #include "exec-cmd.h" #include "strbuf.h" #include "quote.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/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 From 331b094eec6d4c937af6e59df2a537112e4d8205 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Sun, 16 Apr 2023 03:03:05 +0000 Subject: [PATCH 24/24] protocol.h: move definition of DEFAULT_GIT_PORT from cache.h Michael J Gruber noticed that connection via the git:// protocol no longer worked after a recent header clean-up. This was caused by funny interaction of few gotchas. First, a necessary definition #define DEFAULT_GIT_PORT 9418 was made invisible to a place where const char *port = STR(DEFAULT_GIT_PORT); was expecting to turn the integer into "9418" with a clever STR() macro, and ended up stringifying it to const char *port = "DEFAULT_GIT_PORT"; without giving any chance to compilers to notice such a mistake. Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- cache.h | 21 --------------------- daemon.c | 1 + protocol.h | 21 +++++++++++++++++++++ 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/cache.h b/cache.h index 2f21704da9..71e2fe74c4 100644 --- a/cache.h +++ b/cache.h @@ -39,27 +39,6 @@ #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 */ 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/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,