Maintainer note: I dropped multiple changes from this series to avoid conflicts with other in-flight series, but two small conflicts remain. In order to merge with next, add the following declaration to abspath.h: /* Likewise, but path=="-" always yields "-" */ char *prefix_filename_except_for_dash(const char *prefix, const char *path); (from cache.h) and remove the entire conflicted region in cache.h. There is also a semantic conflict with seen; to fix, include abspath.h in the new file compat/fsmonitor/fsm-path-utils-linux.c. This series picks up where en/header-cleanups leaves off and does more header cleanups, trying to reduce the number of files depending on cache.h. (There are still more that could be done, but again, this is a good chunk for now.) Notes: * As I mentioned in my last series, Dscho's gitgitgadget is super helpful for a series like this. * As with my previous series (en/header-cleanup), I used the scripts at my header-cleanup-scripts branch [https://github.com/newren/git/commit/db81c8d7fb554b3edf04320e218bddeb98bb6194], and some tweaks thereof, repeatedly while making this series (though they are prone to produce both false positive and false negatives, so if you use them, only use them to generate hints about which files to look at). Elijah Newren (16): treewide: remove unnecessary cache.h inclusion from a few headers treewide: be explicit about dependence on gettext.h treewide: remove unnecessary inclusion of gettext.h treewide: remove unnecessary cache.h inclusion from several sources environment: move comment_line_char from cache.h abspath.h: move absolute path functions from cache.h cache.h: remove expand_user_path() path.h: move function declarations for path.c functions from cache.h wrapper.h: move declarations for wrapper.c functions from cache.h treewide: remove unnecessary includes of cache.h environment.h: move declarations for environment.c functions from cache.h treewide: remove cache.h inclusion due to environment.h changes setup.h: move declarations for setup.c functions from cache.h treewide: remove cache.h inclusion due to setup.h changes write-or-die.h: move declarations for write-or-die.c functions from cache.h csum-file.h: remove unnecessary inclusion of cache.h abspath.c | 4 +- abspath.h | 30 + add-interactive.c | 1 + add-patch.c | 2 + apply.c | 5 + archive-tar.c | 2 + archive-zip.c | 2 + archive.c | 4 + attr.c | 3 + bisect.c | 2 + blame.c | 2 + branch.c | 2 + builtin/add.c | 1 + builtin/am.c | 4 + builtin/apply.c | 1 + builtin/archive.c | 1 + builtin/bisect.c | 3 + builtin/blame.c | 4 + builtin/branch.c | 3 + builtin/bugreport.c | 5 +- builtin/bundle.c | 3 + builtin/cat-file.c | 3 + builtin/check-attr.c | 4 + builtin/check-ignore.c | 2 + builtin/check-mailmap.c | 2 + builtin/check-ref-format.c | 1 + builtin/checkout--worker.c | 1 + builtin/checkout-index.c | 2 + builtin/checkout.c | 3 + builtin/clean.c | 3 + builtin/clone.c | 4 + builtin/column.c | 1 + builtin/commit-graph.c | 2 + builtin/commit-tree.c | 1 + builtin/commit.c | 2 + builtin/config.c | 5 + builtin/count-objects.c | 2 + builtin/credential-cache--daemon.c | 2 + builtin/credential-cache.c | 3 + builtin/credential-store.c | 2 + builtin/describe.c | 3 + builtin/diagnose.c | 2 + builtin/diff-index.c | 1 + builtin/diff-tree.c | 1 + builtin/diff.c | 2 + builtin/difftool.c | 5 + builtin/fast-export.c | 1 + builtin/fast-import.c | 4 + builtin/fetch-pack.c | 1 + builtin/fetch.c | 2 + builtin/fmt-merge-msg.c | 2 + builtin/for-each-ref.c | 1 + builtin/for-each-repo.c | 1 + builtin/fsck.c | 1 + builtin/fsmonitor--daemon.c | 3 + builtin/gc.c | 5 + builtin/get-tar-commit-id.c | 1 + builtin/grep.c | 3 + builtin/hash-object.c | 4 + builtin/help.c | 2 + builtin/hook.c | 1 + builtin/index-pack.c | 4 + builtin/init-db.c | 5 + builtin/interpret-trailers.c | 1 + builtin/log.c | 4 + builtin/ls-files.c | 2 + builtin/ls-remote.c | 1 + builtin/ls-tree.c | 1 + builtin/mailinfo.c | 3 + builtin/mailsplit.c | 1 + builtin/merge-base.c | 1 + builtin/merge-file.c | 3 + builtin/merge-recursive.c | 1 + builtin/merge-tree.c | 1 + builtin/merge.c | 4 + builtin/mktag.c | 1 + builtin/mktree.c | 1 + builtin/multi-pack-index.c | 3 + builtin/mv.c | 4 + builtin/name-rev.c | 2 + builtin/notes.c | 2 + builtin/pack-objects.c | 3 + builtin/pack-redundant.c | 1 + builtin/pack-refs.c | 1 + builtin/patch-id.c | 1 + builtin/prune-packed.c | 1 + builtin/prune.c | 2 + builtin/pull.c | 1 + builtin/push.c | 2 + builtin/range-diff.c | 1 + builtin/read-tree.c | 2 + builtin/rebase.c | 4 + builtin/receive-pack.c | 4 + builtin/reflog.c | 1 + builtin/remote.c | 1 + builtin/repack.c | 2 + builtin/replace.c | 2 + builtin/rerere.c | 2 + builtin/reset.c | 3 + builtin/rev-list.c | 2 + builtin/rev-parse.c | 4 + builtin/revert.c | 1 + builtin/rm.c | 2 + builtin/send-pack.c | 1 + builtin/shortlog.c | 3 + builtin/show-branch.c | 2 + builtin/show-index.c | 1 + builtin/show-ref.c | 1 + builtin/sparse-checkout.c | 3 + builtin/stash.c | 4 + builtin/stripspace.c | 3 + builtin/submodule--helper.c | 4 + builtin/symbolic-ref.c | 1 + builtin/tag.c | 3 + builtin/unpack-file.c | 1 + builtin/unpack-objects.c | 2 + builtin/update-index.c | 4 + builtin/update-ref.c | 1 + builtin/update-server-info.c | 1 + builtin/upload-pack.c | 1 + builtin/verify-commit.c | 1 + builtin/verify-pack.c | 1 + builtin/verify-tag.c | 1 + builtin/worktree.c | 4 + builtin/write-tree.c | 2 + bulk-checkin.c | 4 +- bulk-checkin.h | 2 +- bundle-uri.c | 2 + bundle.c | 3 + bundle.h | 1 - cache-tree.c | 3 +- cache.h | 568 ------------------- chdir-notify.c | 1 + chunk-format.c | 2 + color.c | 1 + combine-diff.c | 1 + commit-graph.c | 4 +- commit.c | 3 + common-main.c | 2 + compat/disk.h | 2 + compat/fsmonitor/fsm-health-win32.c | 1 + compat/fsmonitor/fsm-listen-darwin.c | 1 + compat/fsmonitor/fsm-listen-win32.c | 1 + compat/fsmonitor/fsm-path-utils-darwin.c | 1 + compat/fsmonitor/fsm-path-utils-win32.c | 1 + compat/linux/procinfo.c | 2 +- compat/mingw.c | 4 + compat/precompose_utf8.c | 2 + compat/simple-ipc/ipc-shared.c | 2 +- compat/simple-ipc/ipc-unix-socket.c | 1 + compat/simple-ipc/ipc-win32.c | 2 + compat/terminal.c | 4 +- config.c | 7 +- connect.c | 2 + connected.c | 3 +- convert.c | 2 + copy.c | 1 + credential.c | 2 + csum-file.c | 3 +- csum-file.h | 2 +- daemon.c | 4 + date.c | 1 + delta-islands.c | 3 +- diagnose.c | 2 + diff-lib.c | 1 + diff-no-index.c | 2 + diff.c | 5 + dir.c | 5 + editor.c | 3 + entry.c | 3 + environment.c | 5 + environment.h | 220 +++++++ exec-cmd.c | 3 + fetch-pack.c | 5 +- fmt-merge-msg.c | 3 +- fsck.c | 2 +- fsmonitor-ipc.c | 1 + fsmonitor.c | 1 + gettext.c | 4 +- git.c | 3 + gpg-interface.c | 6 +- grep.c | 3 +- http-backend.c | 5 +- http-fetch.c | 2 + http-push.c | 2 + imap-send.c | 3 + line-log.c | 2 +- list-objects-filter-options.h | 1 + list-objects-filter.c | 1 + list-objects.c | 1 + ll-merge.c | 1 + lockfile.c | 4 +- log-tree.c | 2 + ls-refs.c | 4 +- mailmap.c | 2 + merge-ort-wrappers.c | 1 + merge-ort.c | 2 + merge-recursive.c | 3 + merge.c | 1 + midx.c | 4 +- name-hash.c | 2 + negotiator/default.c | 2 +- negotiator/skipping.c | 2 +- notes-cache.c | 2 +- notes-merge.c | 2 + notes-utils.c | 4 +- notes.c | 1 + object-file.c | 7 +- object-name.c | 3 + object.c | 1 + pack-bitmap-write.c | 5 +- pack-bitmap.c | 3 +- pack-check.c | 1 + pack-mtimes.c | 3 +- pack-revindex.c | 1 + pack-write.c | 2 + pack.h | 2 + packfile.c | 5 +- packfile.h | 4 +- parallel-checkout.c | 2 + parse-options-cb.c | 2 + parse-options.c | 3 +- parse-options.h | 2 + patch-ids.c | 2 +- path.c | 6 +- path.h | 62 +- pathspec.c | 4 + pkt-line.c | 3 + preload-index.c | 2 + pretty.c | 2 + progress.c | 1 - promisor-remote.c | 1 + prompt.c | 3 +- protocol.c | 1 + prune-packed.c | 2 + range-diff.c | 2 + reachable.c | 3 +- read-cache.c | 3 + rebase-interactive.c | 3 + ref-filter.c | 4 +- ref-filter.h | 1 + reflog.c | 3 +- refs.c | 6 +- refs.h | 1 - refs/files-backend.c | 7 +- refs/iterator.c | 2 +- refs/packed-backend.c | 4 +- refspec.c | 1 + remote-curl.c | 4 + remote.c | 6 +- replace-object.c | 3 +- repository.c | 2 + rerere.c | 3 + rerere.h | 1 + reset.c | 1 + revision.c | 3 + run-command.c | 2 + scalar.c | 2 + send-pack.c | 4 +- sequencer.c | 4 + server-info.c | 4 +- setup.c | 4 + setup.h | 168 ++++++ shallow.c | 3 +- sideband.c | 2 + sparse-index.c | 2 + split-index.c | 1 + strbuf.c | 6 +- streaming.c | 2 + streaming.h | 4 +- submodule-config.c | 2 + submodule.c | 6 +- symlinks.c | 2 + t/helper/test-advise.c | 2 +- t/helper/test-bitmap.c | 3 +- t/helper/test-bloom.c | 4 +- t/helper/test-bundle-uri.c | 1 + t/helper/test-cache-tree.c | 2 + t/helper/test-config.c | 2 +- t/helper/test-delta.c | 2 +- t/helper/test-dump-cache-tree.c | 2 +- t/helper/test-dump-fsmonitor.c | 1 + t/helper/test-dump-split-index.c | 1 + t/helper/test-dump-untracked-cache.c | 1 + t/helper/test-fast-rebase.c | 5 +- t/helper/test-fsmonitor-client.c | 2 + t/helper/test-hash.c | 1 - t/helper/test-lazy-init-name-hash.c | 2 + t/helper/test-match-trees.c | 1 + t/helper/test-oid-array.c | 1 + t/helper/test-oidmap.c | 1 + t/helper/test-oidtree.c | 1 + t/helper/test-pack-mtimes.c | 2 +- t/helper/test-parse-pathspec-file.c | 1 - t/helper/test-partial-clone.c | 4 +- t/helper/test-path-utils.c | 3 + t/helper/test-pkt-line.c | 3 +- t/helper/test-proc-receive.c | 4 +- t/helper/test-progress.c | 1 - t/helper/test-reach.c | 3 + t/helper/test-read-cache.c | 2 + t/helper/test-read-graph.c | 2 +- t/helper/test-read-midx.c | 1 + t/helper/test-ref-store.c | 2 +- t/helper/test-repository.c | 3 +- t/helper/test-revision-walking.c | 2 +- t/helper/test-run-command.c | 1 - t/helper/test-scrap-cache-tree.c | 1 + t/helper/test-serve-v2.c | 3 +- t/helper/test-submodule-config.c | 1 + t/helper/test-submodule-nested-repo-config.c | 2 +- t/helper/test-submodule.c | 2 +- t/helper/test-subprocess.c | 2 +- t/helper/test-trace2.c | 2 +- t/helper/test-userdiff.c | 2 +- t/helper/test-write-cache.c | 1 + tag.c | 2 + tempfile.c | 4 +- tmp-objdir.c | 2 + trace.c | 4 + trace2/tr2_cfg.c | 4 +- trace2/tr2_cmd_name.c | 3 +- trace2/tr2_dst.c | 4 +- trace2/tr2_sid.c | 3 +- trailer.c | 4 +- transport-helper.c | 3 + transport.c | 4 +- transport.h | 1 - tree-walk.c | 1 + unpack-trees.c | 3 + upload-pack.c | 3 + usage.c | 4 +- walker.c | 1 + worktree.c | 5 + wrapper.c | 3 + wrapper.h | 36 ++ write-or-die.c | 4 +- write-or-die.h | 78 +++ wt-status.c | 3 + xdiff-interface.c | 2 +- 340 files changed, 1308 insertions(+), 666 deletions(-) create mode 100644 abspath.h create mode 100644 setup.h create mode 100644 wrapper.h create mode 100644 write-or-die.h base-commit: 950264636c68591989456e3ba0a5442f93152c1a Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1493%2Fnewren%2Fheader-cleanup-2-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1493/newren/header-cleanup-2-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1493 -- gitgitgadget