I was bit yet again by compilation errors when adding a #include of some header file to some new place, and decided to determine which header files were missing their own necessary #include's and forward declarations. This patch series is the result. A few notes: * Patch 1: This patch is the bulk of the work; I included everything here except for special cases that need extra attention and the unrelated change in patch 2. * Patch 2: This patch is more of a while-at-it independent header fixup; it only changes two lines so I lumped it into the series. * Patch 3: I could have just added a #include of cache.h in branch.h instead, but opted to move things around slightly. I'm unsure which is better. * Patches 4-5: Fix include guard issues * Patches 6-8: These patches might need to be submitted to separate projects elsewhere. Let me know if so. * Patch 9: This patch includes the changes that conflict with other topics in next and pu. I included these changes for completeness, but kept it separate because I wanted to make it easy to drop the stuff that conflicted with other things in flight (since I can just resubmit it later). Elijah Newren (9): Add missing includes and forward declares alloc: make allocate_alloc_state and clear_alloc_state more consistent Move definition of enum branch_track from cache.h to branch.h urlmatch.h: fix include guard compat/precompose_utf8.h: use more common include guard style ewah/ewok.h: add missing include sha1dc/sha1.h: add missing include xdiff/xdiff.h: add missing include Add missing includes and forward declares alloc.c | 2 +- alloc.h | 4 +++- apply.h | 3 +++ archive.h | 4 ++++ argv-array.h | 2 ++ attr.h | 1 + bisect.h | 2 ++ branch.h | 13 +++++++++++++ bulk-checkin.h | 2 ++ cache.h | 10 ---------- color.h | 2 ++ column.h | 1 + commit-graph.h | 1 + compat/precompose_utf8.h | 3 ++- config.c | 1 + config.h | 6 ++++++ connected.h | 1 + convert.h | 3 +++ credential.h | 1 + csum-file.h | 2 ++ delta.h | 2 ++ diffcore.h | 4 ++++ dir-iterator.h | 2 ++ environment.c | 1 + ewah/ewok.h | 2 ++ exec-cmd.h | 2 ++ fsck.h | 1 + fsmonitor.h | 7 +++++++ gpg-interface.h | 4 ++++ grep.h | 1 + hashmap.h | 2 ++ khash.h | 4 ++++ kwset.h | 2 ++ list-objects-filter.h | 4 ++++ list-objects.h | 4 ++++ ll-merge.h | 2 ++ mailinfo.h | 2 ++ mailmap.h | 4 ++++ mem-pool.h | 2 ++ merge-recursive.h | 4 +++- notes-cache.h | 1 + notes-merge.h | 4 ++++ notes-utils.h | 4 ++++ notes.h | 3 +++ object-store.h | 1 + object.h | 2 ++ oidmap.h | 1 + pack-bitmap.h | 3 +++ pack-objects.h | 1 + pack-revindex.h | 2 ++ parse-options.h | 2 ++ patch-ids.h | 6 ++++++ path.h | 3 +++ pathspec.h | 5 +++++ pretty.h | 4 ++++ progress.h | 2 ++ quote.h | 2 ++ reachable.h | 4 ++++ reflog-walk.h | 1 + refs.h | 4 ++++ remote.h | 1 + repository.h | 2 ++ resolve-undo.h | 2 ++ revision.h | 1 + send-pack.h | 4 ++++ sequencer.h | 5 +++++ sha1-lookup.h | 2 ++ sha1dc/sha1.h | 1 + shortlog.h | 3 +++ sideband.h | 2 ++ strbuf.h | 2 ++ submodule.h | 10 ++++++++-- tempfile.h | 1 + trailer.h | 3 +++ tree-walk.h | 2 ++ unpack-trees.h | 5 ++++- url.h | 2 ++ urlmatch.h | 3 +++ utf8.h | 4 ++++ varint.h | 2 ++ worktree.h | 1 + xdiff/xdiff.h | 2 ++ 82 files changed, 218 insertions(+), 17 deletions(-) -- 2.18.0.549.gd4454f3f9b