Skip to content

Commit

Permalink
treewide: ensure one of the appropriate headers is sourced first
Browse files Browse the repository at this point in the history
We had several C files ignoring the rule to include one of the
appropriate headers first; fix that.

While at it, the rule in Documentation/CodingGuidelines about which
header to include has also fallen out of sync, so update the wording to
mention other allowed headers.

Unfortunately, C files in reftable/ don't actually follow the previous
or updated rule.  If you follow the #include chain in its C files,
reftable/system.h _tends_ to be first (i.e. record.c first includes
record.h, which first includes basics.h, which first includees
system.h), but not always (e.g. publicbasics.c includes another header
first that does not include system.h).  However, I'm going to punt on
making actual changes to the C files in reftable/ since I do not want to
risk bringing it out-of-sync with any version being used externally.

Signed-off-by: Elijah Newren <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
newren authored and gitster committed Feb 24, 2023
1 parent 06dd2ba commit 8bff5ca
Show file tree
Hide file tree
Showing 14 changed files with 19 additions and 3 deletions.
8 changes: 6 additions & 2 deletions Documentation/CodingGuidelines
Original file line number Diff line number Diff line change
Expand Up @@ -442,8 +442,12 @@ For C programs:
detail.

- The first #include in C files, except in platform specific compat/
implementations, must be either "git-compat-util.h", "cache.h" or
"builtin.h". You do not have to include more than one of these.
implementations and sha1dc/, must be either "git-compat-util.h" or
one of the approved headers that includes it first for you. (The
approved headers currently include "cache.h", "builtin.h",
"t/helper/test-tool.h", "xdiff/xinclude.h", or
"reftable/system.h"). You do not have to include more than one of
these.

- A C file must directly include the header files that declare the
functions and the types it uses, except for the functions and types
Expand Down
1 change: 1 addition & 0 deletions cbtree.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
* Based on Adam Langley's adaptation of Dan Bernstein's public domain code
* git clone https://github.com/agl/critbit.git
*/
#include "git-compat-util.h"
#include "cbtree.h"

static struct cb_node *cb_node_of(const void *p)
Expand Down
1 change: 1 addition & 0 deletions compat/fsmonitor/fsm-ipc-win32.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "config.h"
#include "fsmonitor-ipc.h"

Expand Down
1 change: 1 addition & 0 deletions compat/fsmonitor/fsm-settings-darwin.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "config.h"
#include "fsmonitor.h"
#include "fsmonitor-ipc.h"
Expand Down
1 change: 1 addition & 0 deletions diff-merges.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "diff-merges.h"

#include "revision.h"
Expand Down
1 change: 1 addition & 0 deletions fmt-merge-msg.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "config.h"
#include "refs.h"
#include "object-store.h"
Expand Down
1 change: 1 addition & 0 deletions oidtree.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
* A wrapper around cbtree which stores oids
* May be used to replace oid-array for prefix (abbreviation) matches
*/
#include "git-compat-util.h"
#include "oidtree.h"
#include "alloc.h"
#include "hash.h"
Expand Down
1 change: 1 addition & 0 deletions oss-fuzz/fuzz-commit-graph.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "commit-graph.h"
#include "repository.h"

Expand Down
1 change: 1 addition & 0 deletions oss-fuzz/fuzz-pack-headers.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "packfile.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
Expand Down
1 change: 1 addition & 0 deletions oss-fuzz/fuzz-pack-idx.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "object-store.h"
#include "packfile.h"

Expand Down
1 change: 1 addition & 0 deletions prune-packed.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "object-store.h"
#include "packfile.h"
#include "progress.h"
Expand Down
1 change: 1 addition & 0 deletions rebase.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "git-compat-util.h"
#include "rebase.h"
#include "config.h"
#include "gettext.h"
Expand Down
2 changes: 1 addition & 1 deletion refs/debug.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

#include "git-compat-util.h"
#include "refs-internal.h"
#include "trace.h"

Expand Down
1 change: 1 addition & 0 deletions sub-process.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/*
* Generic implementation of background process infrastructure.
*/
#include "git-compat-util.h"
#include "sub-process.h"
#include "sigchain.h"
#include "pkt-line.h"
Expand Down

0 comments on commit 8bff5ca

Please sign in to comment.