* [PATCHv4 0/6] Add missing includes and forward declares
[not found] <https://public-inbox.org/git/20180813171749.10481-1-newren@gmail.com/>
@ 2018-08-15 17:54 ` Elijah Newren
2018-08-15 17:54 ` [PATCHv4 1/6] Add missing includes and forward declarations Elijah Newren
` (7 more replies)
0 siblings, 8 replies; 14+ messages in thread
From: Elijah Newren @ 2018-08-15 17:54 UTC (permalink / raw)
To: git; +Cc: avarab, peff, ramsay, jrnieder, Elijah Newren
This series fixes compilation errors when using a simple test.c file that
includes git-compat-util.h and then exactly one other header (and repeating
this for different headers of git).
Changes in this series come from Jonathan Nieder's reviews; full
range-diff follows below, but in summary:
- Squashed the final patch from the previous series into the first (Junio
already applied a previous round and resolved the simple conflicts with
next and pu, so making it easy to drop doesn't save effort anymore.)
- Added a new patch to the series removing the forward declaration of
an enum, for portability reasons.
- Added Jonathan's Reviewed-by on the relevant patches
- Remove a few includes and forward declares (which were initially added
in previous rounds of this series) that are no longer necessary (due to
other includes)
- Fixed wording in commit message for patch 1 and added some comments
about methodology used to come up with the patch.
Elijah Newren (6):
Add missing includes and forward declarations
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
Remove forward declaration of an enum
alloc.c | 2 +-
alloc.h | 4 +++-
apply.h | 3 +++
archive.h | 1 +
attr.h | 1 +
bisect.h | 2 ++
branch.h | 13 +++++++++++++
bulk-checkin.h | 2 ++
cache.h | 10 ----------
column.h | 1 +
commit-graph.h | 1 +
compat/precompose_utf8.h | 3 ++-
config.c | 1 +
config.h | 5 +++++
connected.h | 1 +
convert.h | 2 ++
csum-file.h | 2 ++
diffcore.h | 4 ++++
dir-iterator.h | 2 ++
environment.c | 1 +
fsck.h | 1 +
fsmonitor.h | 3 +++
gpg-interface.h | 2 ++
khash.h | 3 +++
list-objects-filter.h | 4 ++++
list-objects.h | 4 ++++
ll-merge.h | 2 ++
mailinfo.h | 2 ++
mailmap.h | 2 ++
merge-recursive.h | 4 +++-
notes-merge.h | 4 ++++
notes-utils.h | 3 +++
notes.h | 3 +++
object-store.h | 1 +
object.h | 2 ++
oidmap.h | 1 +
pack-bitmap.h | 3 +++
pack-objects.h | 1 +
packfile.h | 2 +-
patch-ids.h | 6 ++++++
path.h | 1 +
pathspec.h | 2 ++
pretty.h | 4 ++++
reachable.h | 2 ++
reflog-walk.h | 1 +
refs.h | 2 ++
remote.h | 1 +
repository.h | 2 ++
resolve-undo.h | 2 ++
revision.h | 1 +
send-pack.h | 4 ++++
sequencer.h | 5 +++++
shortlog.h | 2 ++
submodule.h | 10 ++++++++--
tempfile.h | 1 +
trailer.h | 2 ++
tree-walk.h | 2 ++
unpack-trees.h | 5 ++++-
url.h | 2 ++
urlmatch.h | 2 ++
utf8.h | 2 ++
worktree.h | 1 +
62 files changed, 152 insertions(+), 18 deletions(-)
1: f7d50cef3b ! 1: e6a93208b2 Add missing includes and forward declares
@@ -1,6 +1,13 @@
Author: Elijah Newren <newren@gmail.com>
- Add missing includes and forward declares
+ Add missing includes and forward declarations
+
+ I looped over the toplevel header files, creating a temporary two-line C
+ program for each consisting of
+ #include "git-compat-util.h"
+ #include $HEADER
+ This patch is the result of manually fixing errors in compiling those
+ tiny programs.
Signed-off-by: Elijah Newren <newren@gmail.com>
@@ -38,15 +45,13 @@
--- a/archive.h
+++ b/archive.h
@@
+ #ifndef ARCHIVE_H
+ #define ARCHIVE_H
++#include "cache.h"
#include "pathspec.h"
-+struct object_id;
-+enum object_type;
-+
struct archiver_args {
- const char *base;
- size_t baselen;
diff --git a/attr.h b/attr.h
--- a/attr.h
@@ -60,6 +65,19 @@
/*
* Given a string, return the gitattribute object that
+diff --git a/bisect.h b/bisect.h
+--- a/bisect.h
++++ b/bisect.h
+@@
+ #ifndef BISECT_H
+ #define BISECT_H
+
++struct commit_list;
++
+ /*
+ * Find bisection. If something is found, `reaches` will be the number of
+ * commits that the best commit reaches. `all` will be the count of
+
diff --git a/branch.h b/branch.h
--- a/branch.h
+++ b/branch.h
@@ -213,10 +231,6 @@
+#include "cache.h"
+#include "dir.h"
-+
-+struct cache_entry;
-+struct index_state;
-+struct strbuf;
+
extern struct trace_key trace_fsmonitor;
@@ -428,6 +442,18 @@
char magic[4];
uint16_t version;
+diff --git a/pack-objects.h b/pack-objects.h
+--- a/pack-objects.h
++++ b/pack-objects.h
+@@
+ #define PACK_OBJECTS_H
+
+ #include "object-store.h"
++#include "pack.h"
+
+ #define DEFAULT_DELTA_CACHE_SIZE (256 * 1024 * 1024)
+
+
diff --git a/patch-ids.h b/patch-ids.h
--- a/patch-ids.h
+++ b/patch-ids.h
@@ -464,9 +490,6 @@
#ifndef PATHSPEC_H
#define PATHSPEC_H
-+#include "string.h"
-+#include "strings.h"
-+
+struct index_state;
+
/* Pathspec magic */
2: e46bf7d601 ! 2: f199566088 alloc: make allocate_alloc_state and clear_alloc_state more consistent
@@ -6,6 +6,7 @@
refer to it as void *, or both use the real type (struct alloc_state *).
Opt for the latter.
+ Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
diff --git a/alloc.c b/alloc.c
3: aec8ddda59 ! 3: 169c90a96f Move definition of enum branch_track from cache.h to branch.h
@@ -7,6 +7,7 @@
for this small enum, just move the enum and the external declaration
for git_branch_track to branch.h.
+ Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
diff --git a/branch.h b/branch.h
4: 14e33fb5ff ! 4: 5a36e50d4d urlmatch.h: fix include guard
@@ -2,6 +2,7 @@
urlmatch.h: fix include guard
+ Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
diff --git a/urlmatch.h b/urlmatch.h
5: 3e02a381af ! 5: 8f247b24a7 compat/precompose_utf8.h: use more common include guard style
@@ -2,6 +2,7 @@
compat/precompose_utf8.h: use more common include guard style
+ Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
diff --git a/compat/precompose_utf8.h b/compat/precompose_utf8.h
6: aca61bade1 < -: ---------- Add missing includes and forward declares
-: ---------- > 6: 74975b7909 Remove forward declaration of an enum
--
2.18.0.553.g74975b7909
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCHv4 1/6] Add missing includes and forward declarations
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
@ 2018-08-15 17:54 ` Elijah Newren
2018-08-15 20:36 ` Jonathan Nieder
2018-08-15 17:54 ` [PATCHv4 2/6] alloc: make allocate_alloc_state and clear_alloc_state more consistent Elijah Newren
` (6 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Elijah Newren @ 2018-08-15 17:54 UTC (permalink / raw)
To: git; +Cc: avarab, peff, ramsay, jrnieder, Elijah Newren
I looped over the toplevel header files, creating a temporary two-line C
program for each consisting of
#include "git-compat-util.h"
#include $HEADER
This patch is the result of manually fixing errors in compiling those
tiny programs.
Signed-off-by: Elijah Newren <newren@gmail.com>
---
alloc.h | 2 ++
apply.h | 3 +++
archive.h | 1 +
attr.h | 1 +
bisect.h | 2 ++
branch.h | 2 ++
bulk-checkin.h | 2 ++
column.h | 1 +
commit-graph.h | 1 +
config.h | 5 +++++
connected.h | 1 +
convert.h | 2 ++
csum-file.h | 2 ++
diffcore.h | 4 ++++
dir-iterator.h | 2 ++
fsck.h | 1 +
fsmonitor.h | 3 +++
gpg-interface.h | 2 ++
khash.h | 3 +++
list-objects-filter.h | 4 ++++
list-objects.h | 4 ++++
ll-merge.h | 2 ++
mailinfo.h | 2 ++
mailmap.h | 2 ++
merge-recursive.h | 4 +++-
notes-merge.h | 4 ++++
notes-utils.h | 3 +++
notes.h | 3 +++
object-store.h | 1 +
object.h | 2 ++
oidmap.h | 1 +
pack-bitmap.h | 3 +++
pack-objects.h | 1 +
patch-ids.h | 6 ++++++
path.h | 1 +
pathspec.h | 2 ++
pretty.h | 4 ++++
reachable.h | 2 ++
reflog-walk.h | 1 +
refs.h | 2 ++
remote.h | 1 +
repository.h | 2 ++
resolve-undo.h | 2 ++
revision.h | 1 +
send-pack.h | 4 ++++
sequencer.h | 5 +++++
shortlog.h | 2 ++
submodule.h | 10 ++++++++--
tempfile.h | 1 +
trailer.h | 2 ++
tree-walk.h | 2 ++
unpack-trees.h | 5 ++++-
url.h | 2 ++
utf8.h | 2 ++
worktree.h | 1 +
55 files changed, 132 insertions(+), 4 deletions(-)
diff --git a/alloc.h b/alloc.h
index 3e4e828db4..7a41bb9eb3 100644
--- a/alloc.h
+++ b/alloc.h
@@ -1,9 +1,11 @@
#ifndef ALLOC_H
#define ALLOC_H
+struct alloc_state;
struct tree;
struct commit;
struct tag;
+struct repository;
void *alloc_blob_node(struct repository *r);
void *alloc_tree_node(struct repository *r);
diff --git a/apply.h b/apply.h
index b80d8ba736..0b70e1f3f5 100644
--- a/apply.h
+++ b/apply.h
@@ -1,6 +1,9 @@
#ifndef APPLY_H
#define APPLY_H
+#include "lockfile.h"
+#include "string-list.h"
+
enum apply_ws_error_action {
nowarn_ws_error,
warn_on_ws_error,
diff --git a/archive.h b/archive.h
index 1f9954f7cd..7aba133635 100644
--- a/archive.h
+++ b/archive.h
@@ -1,6 +1,7 @@
#ifndef ARCHIVE_H
#define ARCHIVE_H
+#include "cache.h"
#include "pathspec.h"
struct archiver_args {
diff --git a/attr.h b/attr.h
index 442d464db6..3185538bda 100644
--- a/attr.h
+++ b/attr.h
@@ -7,6 +7,7 @@ struct git_attr;
/* opaque structures used internally for attribute collection */
struct all_attrs_item;
struct attr_stack;
+struct index_state;
/*
* Given a string, return the gitattribute object that
diff --git a/bisect.h b/bisect.h
index a5d9248a47..34df209351 100644
--- a/bisect.h
+++ b/bisect.h
@@ -1,6 +1,8 @@
#ifndef BISECT_H
#define BISECT_H
+struct commit_list;
+
/*
* Find bisection. If something is found, `reaches` will be the number of
* commits that the best commit reaches. `all` will be the count of
diff --git a/branch.h b/branch.h
index 473d0a93e9..7d9b330eba 100644
--- a/branch.h
+++ b/branch.h
@@ -1,6 +1,8 @@
#ifndef BRANCH_H
#define BRANCH_H
+struct strbuf;
+
/* Functions for acting on the information about branches. */
/*
diff --git a/bulk-checkin.h b/bulk-checkin.h
index a85527318b..f438f93811 100644
--- a/bulk-checkin.h
+++ b/bulk-checkin.h
@@ -4,6 +4,8 @@
#ifndef BULK_CHECKIN_H
#define BULK_CHECKIN_H
+#include "cache.h"
+
extern int index_bulk_checkin(struct object_id *oid,
int fd, size_t size, enum object_type type,
const char *path, unsigned flags);
diff --git a/column.h b/column.h
index 0a61917fa7..2567a5cf4d 100644
--- a/column.h
+++ b/column.h
@@ -36,6 +36,7 @@ static inline int column_active(unsigned int colopts)
return (colopts & COL_ENABLE_MASK) == COL_ENABLED;
}
+struct string_list;
extern void print_columns(const struct string_list *list, unsigned int colopts,
const struct column_options *opts);
diff --git a/commit-graph.h b/commit-graph.h
index 76e098934a..eea62f8c0e 100644
--- a/commit-graph.h
+++ b/commit-graph.h
@@ -4,6 +4,7 @@
#include "git-compat-util.h"
#include "repository.h"
#include "string-list.h"
+#include "cache.h"
struct commit;
diff --git a/config.h b/config.h
index bb2f506b27..75ba1d45ff 100644
--- a/config.h
+++ b/config.h
@@ -1,6 +1,11 @@
#ifndef CONFIG_H
#define CONFIG_H
+#include "hashmap.h"
+#include "string-list.h"
+
+struct object_id;
+
/* git_config_parse_key() returns these negated: */
#define CONFIG_INVALID_KEY 1
#define CONFIG_NO_SECTION_OR_NAME 2
diff --git a/connected.h b/connected.h
index 322dc76372..e4c961817d 100644
--- a/connected.h
+++ b/connected.h
@@ -1,6 +1,7 @@
#ifndef CONNECTED_H
#define CONNECTED_H
+struct object_id;
struct transport;
/*
diff --git a/convert.h b/convert.h
index 01385d9288..76c654385d 100644
--- a/convert.h
+++ b/convert.h
@@ -7,6 +7,8 @@
#include "string-list.h"
struct index_state;
+struct object_id;
+struct strbuf;
#define CONV_EOL_RNDTRP_DIE (1<<0) /* Die if CRLF to LF to CRLF is different */
#define CONV_EOL_RNDTRP_WARN (1<<1) /* Warn if CRLF to LF to CRLF is different */
diff --git a/csum-file.h b/csum-file.h
index c5a2e335e7..3bf7184736 100644
--- a/csum-file.h
+++ b/csum-file.h
@@ -1,6 +1,8 @@
#ifndef CSUM_FILE_H
#define CSUM_FILE_H
+#include "hash.h"
+
struct progress;
/* A SHA1-protected file */
diff --git a/diffcore.h b/diffcore.h
index a30da161da..0dd1e9a63a 100644
--- a/diffcore.h
+++ b/diffcore.h
@@ -4,6 +4,10 @@
#ifndef DIFFCORE_H
#define DIFFCORE_H
+#include "cache.h"
+
+struct diff_options;
+
/* This header file is internal between diff.c and its diff transformers
* (e.g. diffcore-rename, diffcore-pickaxe). Never include this header
* in anything else.
diff --git a/dir-iterator.h b/dir-iterator.h
index 27739e6c29..970793d07a 100644
--- a/dir-iterator.h
+++ b/dir-iterator.h
@@ -1,6 +1,8 @@
#ifndef DIR_ITERATOR_H
#define DIR_ITERATOR_H
+#include "strbuf.h"
+
/*
* Iterate over a directory tree.
*
diff --git a/fsck.h b/fsck.h
index c3cf5e0034..0c7e8c9428 100644
--- a/fsck.h
+++ b/fsck.h
@@ -6,6 +6,7 @@
#define FSCK_IGNORE 3
struct fsck_options;
+struct object;
void fsck_set_msg_type(struct fsck_options *options,
const char *msg_id, const char *msg_type);
diff --git a/fsmonitor.h b/fsmonitor.h
index 65f3743636..01017c43aa 100644
--- a/fsmonitor.h
+++ b/fsmonitor.h
@@ -1,6 +1,9 @@
#ifndef FSMONITOR_H
#define FSMONITOR_H
+#include "cache.h"
+#include "dir.h"
+
extern struct trace_key trace_fsmonitor;
/*
diff --git a/gpg-interface.h b/gpg-interface.h
index 5ecff4aa0c..acf50c4610 100644
--- a/gpg-interface.h
+++ b/gpg-interface.h
@@ -1,6 +1,8 @@
#ifndef GPG_INTERFACE_H
#define GPG_INTERFACE_H
+struct strbuf;
+
#define GPG_VERIFY_VERBOSE 1
#define GPG_VERIFY_RAW 2
#define GPG_VERIFY_OMIT_STATUS 4
diff --git a/khash.h b/khash.h
index c0da40daa7..07b4cc2e67 100644
--- a/khash.h
+++ b/khash.h
@@ -26,6 +26,9 @@
#ifndef __AC_KHASH_H
#define __AC_KHASH_H
+#include "cache.h"
+#include "hashmap.h"
+
#define AC_VERSION_KHASH_H "0.2.8"
typedef uint32_t khint32_t;
diff --git a/list-objects-filter.h b/list-objects-filter.h
index a963d0274c..a6f6b4990b 100644
--- a/list-objects-filter.h
+++ b/list-objects-filter.h
@@ -1,6 +1,10 @@
#ifndef LIST_OBJECTS_FILTER_H
#define LIST_OBJECTS_FILTER_H
+struct list_objects_filter_options;
+struct object;
+struct oidset;
+
/*
* During list-object traversal we allow certain objects to be
* filtered (omitted) from the result. The active filter uses
diff --git a/list-objects.h b/list-objects.h
index aa618d7f45..ad40762926 100644
--- a/list-objects.h
+++ b/list-objects.h
@@ -1,6 +1,10 @@
#ifndef LIST_OBJECTS_H
#define LIST_OBJECTS_H
+struct commit;
+struct object;
+struct rev_info;
+
typedef void (*show_commit_fn)(struct commit *, void *);
typedef void (*show_object_fn)(struct object *, const char *, void *);
void traverse_commit_list(struct rev_info *, show_commit_fn, show_object_fn, void *);
diff --git a/ll-merge.h b/ll-merge.h
index 244a31f55a..b72b19921e 100644
--- a/ll-merge.h
+++ b/ll-merge.h
@@ -5,6 +5,8 @@
#ifndef LL_MERGE_H
#define LL_MERGE_H
+#include "xdiff/xdiff.h"
+
struct ll_merge_options {
unsigned virtual_ancestor : 1;
unsigned variant : 2; /* favor ours, favor theirs, or union merge */
diff --git a/mailinfo.h b/mailinfo.h
index 04a25351d6..766c03dd1d 100644
--- a/mailinfo.h
+++ b/mailinfo.h
@@ -1,6 +1,8 @@
#ifndef MAILINFO_H
#define MAILINFO_H
+#include "strbuf.h"
+
#define MAX_BOUNDARIES 5
struct mailinfo {
diff --git a/mailmap.h b/mailmap.h
index ed7c93b05c..d0e65646cb 100644
--- a/mailmap.h
+++ b/mailmap.h
@@ -1,6 +1,8 @@
#ifndef MAILMAP_H
#define MAILMAP_H
+struct string_list;
+
int read_mailmap(struct string_list *map, char **repo_abbrev);
void clear_mailmap(struct string_list *map);
diff --git a/merge-recursive.h b/merge-recursive.h
index fa7bc6b683..0c46a5a4ff 100644
--- a/merge-recursive.h
+++ b/merge-recursive.h
@@ -1,8 +1,10 @@
#ifndef MERGE_RECURSIVE_H
#define MERGE_RECURSIVE_H
-#include "unpack-trees.h"
#include "string-list.h"
+#include "unpack-trees.h"
+
+struct commit;
struct merge_options {
const char *ancestor;
diff --git a/notes-merge.h b/notes-merge.h
index f815f23451..6c74e9385b 100644
--- a/notes-merge.h
+++ b/notes-merge.h
@@ -2,6 +2,10 @@
#define NOTES_MERGE_H
#include "notes-utils.h"
+#include "strbuf.h"
+
+struct commit;
+struct object_id;
#define NOTES_MERGE_WORKTREE "NOTES_MERGE_WORKTREE"
diff --git a/notes-utils.h b/notes-utils.h
index 5d79cbef51..5408306528 100644
--- a/notes-utils.h
+++ b/notes-utils.h
@@ -3,6 +3,9 @@
#include "notes.h"
+struct commit_list;
+struct object_id;
+
/*
* Create new notes commit from the given notes tree
*
diff --git a/notes.h b/notes.h
index 0433f45db5..414bc6855a 100644
--- a/notes.h
+++ b/notes.h
@@ -3,6 +3,9 @@
#include "string-list.h"
+struct object_id;
+struct strbuf;
+
/*
* Function type for combining two notes annotating the same object.
*
diff --git a/object-store.h b/object-store.h
index e481f7ad41..b6f2c732c4 100644
--- a/object-store.h
+++ b/object-store.h
@@ -1,6 +1,7 @@
#ifndef OBJECT_STORE_H
#define OBJECT_STORE_H
+#include "cache.h"
#include "oidmap.h"
#include "list.h"
#include "sha1-array.h"
diff --git a/object.h b/object.h
index 177b1a4571..6e28fdd0b4 100644
--- a/object.h
+++ b/object.h
@@ -1,6 +1,8 @@
#ifndef OBJECT_H
#define OBJECT_H
+#include "cache.h"
+
struct buffer_slab;
struct parsed_object_pool {
diff --git a/oidmap.h b/oidmap.h
index d3cd2bb590..72430b611e 100644
--- a/oidmap.h
+++ b/oidmap.h
@@ -1,6 +1,7 @@
#ifndef OIDMAP_H
#define OIDMAP_H
+#include "cache.h"
#include "hashmap.h"
/*
diff --git a/pack-bitmap.h b/pack-bitmap.h
index 4555907dee..8a04741e12 100644
--- a/pack-bitmap.h
+++ b/pack-bitmap.h
@@ -5,6 +5,9 @@
#include "khash.h"
#include "pack-objects.h"
+struct commit;
+struct rev_info;
+
struct bitmap_disk_header {
char magic[4];
uint16_t version;
diff --git a/pack-objects.h b/pack-objects.h
index edf74dabdd..08c6b57d49 100644
--- a/pack-objects.h
+++ b/pack-objects.h
@@ -2,6 +2,7 @@
#define PACK_OBJECTS_H
#include "object-store.h"
+#include "pack.h"
#define DEFAULT_DELTA_CACHE_SIZE (256 * 1024 * 1024)
diff --git a/patch-ids.h b/patch-ids.h
index bec0f727a7..79ac9a8498 100644
--- a/patch-ids.h
+++ b/patch-ids.h
@@ -1,6 +1,12 @@
#ifndef PATCH_IDS_H
#define PATCH_IDS_H
+#include "diff.h"
+#include "hashmap.h"
+
+struct commit;
+struct object_id;
+
struct patch_id {
struct hashmap_entry ent;
struct object_id patch_id;
diff --git a/path.h b/path.h
index ed6732e5a2..b654ea8ff5 100644
--- a/path.h
+++ b/path.h
@@ -2,6 +2,7 @@
#define PATH_H
struct repository;
+struct strbuf;
/*
* The result to all functions which return statically allocated memory may be
diff --git a/pathspec.h b/pathspec.h
index 099a170c2e..a6525a6551 100644
--- a/pathspec.h
+++ b/pathspec.h
@@ -1,6 +1,8 @@
#ifndef PATHSPEC_H
#define PATHSPEC_H
+struct index_state;
+
/* Pathspec magic */
#define PATHSPEC_FROMTOP (1<<0)
#define PATHSPEC_MAXDEPTH (1<<1)
diff --git a/pretty.h b/pretty.h
index 5c85d94e33..7359d318a9 100644
--- a/pretty.h
+++ b/pretty.h
@@ -1,7 +1,11 @@
#ifndef PRETTY_H
#define PRETTY_H
+#include "cache.h"
+#include "string-list.h"
+
struct commit;
+struct strbuf;
/* Commit formats */
enum cmit_fmt {
diff --git a/reachable.h b/reachable.h
index 3c00fa0526..18b0f9f2f0 100644
--- a/reachable.h
+++ b/reachable.h
@@ -2,6 +2,8 @@
#define REACHEABLE_H
struct progress;
+struct rev_info;
+
extern int add_unseen_recent_objects_to_traversal(struct rev_info *revs,
timestamp_t timestamp);
extern void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
diff --git a/reflog-walk.h b/reflog-walk.h
index 7553c448fe..cb3e73755d 100644
--- a/reflog-walk.h
+++ b/reflog-walk.h
@@ -3,6 +3,7 @@
#include "cache.h"
+struct commit;
struct reflog_walk_info;
extern void init_reflog_walk(struct reflog_walk_info **info);
diff --git a/refs.h b/refs.h
index cc2fb4c68c..bd52c1bbae 100644
--- a/refs.h
+++ b/refs.h
@@ -3,8 +3,10 @@
struct object_id;
struct ref_store;
+struct repository;
struct strbuf;
struct string_list;
+struct string_list_item;
struct worktree;
/*
diff --git a/remote.h b/remote.h
index 976292152c..88f8480c71 100644
--- a/remote.h
+++ b/remote.h
@@ -1,6 +1,7 @@
#ifndef REMOTE_H
#define REMOTE_H
+#include "cache.h"
#include "parse-options.h"
#include "hashmap.h"
#include "refspec.h"
diff --git a/repository.h b/repository.h
index b9413be50c..13c8799678 100644
--- a/repository.h
+++ b/repository.h
@@ -1,6 +1,8 @@
#ifndef REPOSITORY_H
#define REPOSITORY_H
+#include "path.h"
+
struct config_set;
struct git_hash_algo;
struct index_state;
diff --git a/resolve-undo.h b/resolve-undo.h
index 87291904bd..fbe348efac 100644
--- a/resolve-undo.h
+++ b/resolve-undo.h
@@ -1,6 +1,8 @@
#ifndef RESOLVE_UNDO_H
#define RESOLVE_UNDO_H
+#include "cache.h"
+
struct resolve_undo_info {
unsigned int mode[3];
struct object_id oid[3];
diff --git a/revision.h b/revision.h
index c599c34da9..850e508783 100644
--- a/revision.h
+++ b/revision.h
@@ -1,6 +1,7 @@
#ifndef REVISION_H
#define REVISION_H
+#include "commit.h"
#include "parse-options.h"
#include "grep.h"
#include "notes.h"
diff --git a/send-pack.h b/send-pack.h
index 6af71f7008..e148fcd960 100644
--- a/send-pack.h
+++ b/send-pack.h
@@ -3,6 +3,10 @@
#include "string-list.h"
+struct child_process;
+struct oid_array;
+struct ref;
+
/* Possible values for push_cert field in send_pack_args. */
#define SEND_PACK_PUSH_CERT_NEVER 0
#define SEND_PACK_PUSH_CERT_IF_ASKED 1
diff --git a/sequencer.h b/sequencer.h
index c5787c6b56..c751c9d6e4 100644
--- a/sequencer.h
+++ b/sequencer.h
@@ -1,6 +1,11 @@
#ifndef SEQUENCER_H
#define SEQUENCER_H
+#include "cache.h"
+#include "strbuf.h"
+
+struct commit;
+
const char *git_path_commit_editmsg(void);
const char *git_path_seq_dir(void);
diff --git a/shortlog.h b/shortlog.h
index 5d64cfe929..2fa61c4294 100644
--- a/shortlog.h
+++ b/shortlog.h
@@ -3,6 +3,8 @@
#include "string-list.h"
+struct commit;
+
struct shortlog {
struct string_list list;
int summary;
diff --git a/submodule.h b/submodule.h
index 4644683e6c..3adbc08915 100644
--- a/submodule.h
+++ b/submodule.h
@@ -1,11 +1,17 @@
#ifndef SUBMODULE_H
#define SUBMODULE_H
-struct repository;
-struct diff_options;
struct argv_array;
+struct cache_entry;
+struct diff_options;
+struct index_state;
+struct object_id;
struct oid_array;
+struct pathspec;
struct remote;
+struct repository;
+struct string_list;
+struct strbuf;
enum {
RECURSE_SUBMODULES_ONLY = -5,
diff --git a/tempfile.h b/tempfile.h
index 8959c5f1b5..36434eb6fa 100644
--- a/tempfile.h
+++ b/tempfile.h
@@ -2,6 +2,7 @@
#define TEMPFILE_H
#include "list.h"
+#include "strbuf.h"
/*
* Handle temporary files.
diff --git a/trailer.h b/trailer.h
index 6d7f8c2a52..9c10026c35 100644
--- a/trailer.h
+++ b/trailer.h
@@ -3,6 +3,8 @@
#include "list.h"
+struct strbuf;
+
enum trailer_where {
WHERE_DEFAULT,
WHERE_END,
diff --git a/tree-walk.h b/tree-walk.h
index 805f58f00f..196831007e 100644
--- a/tree-walk.h
+++ b/tree-walk.h
@@ -1,6 +1,8 @@
#ifndef TREE_WALK_H
#define TREE_WALK_H
+struct strbuf;
+
struct name_entry {
const struct object_id *oid;
const char *path;
diff --git a/unpack-trees.h b/unpack-trees.h
index c2b434c606..48bc69cb47 100644
--- a/unpack-trees.h
+++ b/unpack-trees.h
@@ -1,11 +1,14 @@
#ifndef UNPACK_TREES_H
#define UNPACK_TREES_H
-#include "tree-walk.h"
+#include "cache.h"
#include "argv-array.h"
+#include "string-list.h"
+#include "tree-walk.h"
#define MAX_UNPACK_TREES 8
+struct cache_entry;
struct unpack_trees_options;
struct exclude_list;
diff --git a/url.h b/url.h
index abdaf6fa30..f311c40a46 100644
--- a/url.h
+++ b/url.h
@@ -1,6 +1,8 @@
#ifndef URL_H
#define URL_H
+struct strbuf;
+
extern int is_url(const char *url);
extern int is_urlschemechar(int first_flag, int ch);
extern char *url_decode(const char *url);
diff --git a/utf8.h b/utf8.h
index db73a2d8d3..dd5ee1052a 100644
--- a/utf8.h
+++ b/utf8.h
@@ -1,6 +1,8 @@
#ifndef GIT_UTF8_H
#define GIT_UTF8_H
+struct strbuf;
+
typedef unsigned int ucs_char_t; /* assuming 32bit int */
size_t display_mode_esc_sequence_len(const char *s);
diff --git a/worktree.h b/worktree.h
index fe38ce10c3..df3fc30f73 100644
--- a/worktree.h
+++ b/worktree.h
@@ -1,6 +1,7 @@
#ifndef WORKTREE_H
#define WORKTREE_H
+#include "cache.h"
#include "refs.h"
struct strbuf;
--
2.18.0.553.g74975b7909
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv4 2/6] alloc: make allocate_alloc_state and clear_alloc_state more consistent
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
2018-08-15 17:54 ` [PATCHv4 1/6] Add missing includes and forward declarations Elijah Newren
@ 2018-08-15 17:54 ` Elijah Newren
2018-08-15 20:37 ` Jonathan Nieder
2018-08-15 17:54 ` [PATCHv4 3/6] Move definition of enum branch_track from cache.h to branch.h Elijah Newren
` (5 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Elijah Newren @ 2018-08-15 17:54 UTC (permalink / raw)
To: git; +Cc: avarab, peff, ramsay, jrnieder, Elijah Newren
Since both functions are using the same data type, they should either both
refer to it as void *, or both use the real type (struct alloc_state *).
Opt for the latter.
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
alloc.c | 2 +-
alloc.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/alloc.c b/alloc.c
index c2fc5d6888..e7aa81b7aa 100644
--- a/alloc.c
+++ b/alloc.c
@@ -36,7 +36,7 @@ struct alloc_state {
int slab_nr, slab_alloc;
};
-void *allocate_alloc_state(void)
+struct alloc_state *allocate_alloc_state(void)
{
return xcalloc(1, sizeof(struct alloc_state));
}
diff --git a/alloc.h b/alloc.h
index 7a41bb9eb3..ba356ed847 100644
--- a/alloc.h
+++ b/alloc.h
@@ -15,7 +15,7 @@ void *alloc_object_node(struct repository *r);
void alloc_report(struct repository *r);
unsigned int alloc_commit_index(struct repository *r);
-void *allocate_alloc_state(void);
+struct alloc_state *allocate_alloc_state(void);
void clear_alloc_state(struct alloc_state *s);
#endif
--
2.18.0.553.g74975b7909
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv4 3/6] Move definition of enum branch_track from cache.h to branch.h
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
2018-08-15 17:54 ` [PATCHv4 1/6] Add missing includes and forward declarations Elijah Newren
2018-08-15 17:54 ` [PATCHv4 2/6] alloc: make allocate_alloc_state and clear_alloc_state more consistent Elijah Newren
@ 2018-08-15 17:54 ` Elijah Newren
2018-08-15 17:54 ` [PATCHv4 4/6] urlmatch.h: fix include guard Elijah Newren
` (4 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Elijah Newren @ 2018-08-15 17:54 UTC (permalink / raw)
To: git; +Cc: avarab, peff, ramsay, jrnieder, Elijah Newren
'branch_track' feels more closely related to branching, and it is
needed later in branch.h; rather than #include'ing cache.h in branch.h
for this small enum, just move the enum and the external declaration
for git_branch_track to branch.h.
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
branch.h | 11 +++++++++++
cache.h | 10 ----------
config.c | 1 +
environment.c | 1 +
4 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/branch.h b/branch.h
index 7d9b330eba..5cace4581f 100644
--- a/branch.h
+++ b/branch.h
@@ -3,6 +3,17 @@
struct strbuf;
+enum branch_track {
+ BRANCH_TRACK_UNSPECIFIED = -1,
+ BRANCH_TRACK_NEVER = 0,
+ BRANCH_TRACK_REMOTE,
+ BRANCH_TRACK_ALWAYS,
+ BRANCH_TRACK_EXPLICIT,
+ BRANCH_TRACK_OVERRIDE
+};
+
+extern enum branch_track git_branch_track;
+
/* Functions for acting on the information about branches. */
/*
diff --git a/cache.h b/cache.h
index 8dc7134f00..a1c0c594fb 100644
--- a/cache.h
+++ b/cache.h
@@ -919,15 +919,6 @@ enum log_refs_config {
};
extern enum log_refs_config log_all_ref_updates;
-enum branch_track {
- BRANCH_TRACK_UNSPECIFIED = -1,
- BRANCH_TRACK_NEVER = 0,
- BRANCH_TRACK_REMOTE,
- BRANCH_TRACK_ALWAYS,
- BRANCH_TRACK_EXPLICIT,
- BRANCH_TRACK_OVERRIDE
-};
-
enum rebase_setup_type {
AUTOREBASE_NEVER = 0,
AUTOREBASE_LOCAL,
@@ -944,7 +935,6 @@ enum push_default_type {
PUSH_DEFAULT_UNSPECIFIED
};
-extern enum branch_track git_branch_track;
extern enum rebase_setup_type autorebase;
extern enum push_default_type push_default;
diff --git a/config.c b/config.c
index 66645047eb..66dca7978a 100644
--- a/config.c
+++ b/config.c
@@ -6,6 +6,7 @@
*
*/
#include "cache.h"
+#include "branch.h"
#include "config.h"
#include "repository.h"
#include "lockfile.h"
diff --git a/environment.c b/environment.c
index 6cf0079389..0c04a6da7a 100644
--- a/environment.c
+++ b/environment.c
@@ -8,6 +8,7 @@
* are.
*/
#include "cache.h"
+#include "branch.h"
#include "repository.h"
#include "config.h"
#include "refs.h"
--
2.18.0.553.g74975b7909
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv4 4/6] urlmatch.h: fix include guard
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
` (2 preceding siblings ...)
2018-08-15 17:54 ` [PATCHv4 3/6] Move definition of enum branch_track from cache.h to branch.h Elijah Newren
@ 2018-08-15 17:54 ` Elijah Newren
2018-08-15 17:54 ` [PATCHv4 5/6] compat/precompose_utf8.h: use more common include guard style Elijah Newren
` (3 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Elijah Newren @ 2018-08-15 17:54 UTC (permalink / raw)
To: git; +Cc: avarab, peff, ramsay, jrnieder, Elijah Newren
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
urlmatch.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/urlmatch.h b/urlmatch.h
index 37ee5da85e..e482148248 100644
--- a/urlmatch.h
+++ b/urlmatch.h
@@ -1,4 +1,6 @@
#ifndef URL_MATCH_H
+#define URL_MATCH_H
+
#include "string-list.h"
struct url_info {
--
2.18.0.553.g74975b7909
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv4 5/6] compat/precompose_utf8.h: use more common include guard style
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
` (3 preceding siblings ...)
2018-08-15 17:54 ` [PATCHv4 4/6] urlmatch.h: fix include guard Elijah Newren
@ 2018-08-15 17:54 ` Elijah Newren
2018-08-15 17:54 ` [PATCHv4 6/6] Remove forward declaration of an enum Elijah Newren
` (2 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Elijah Newren @ 2018-08-15 17:54 UTC (permalink / raw)
To: git; +Cc: avarab, peff, ramsay, jrnieder, Elijah Newren
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
compat/precompose_utf8.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/compat/precompose_utf8.h b/compat/precompose_utf8.h
index a94e7c4342..6f843d3e1a 100644
--- a/compat/precompose_utf8.h
+++ b/compat/precompose_utf8.h
@@ -1,4 +1,6 @@
#ifndef PRECOMPOSE_UNICODE_H
+#define PRECOMPOSE_UNICODE_H
+
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
@@ -41,5 +43,4 @@ int precompose_utf8_closedir(PREC_DIR *dirp);
#define DIR PREC_DIR
#endif /* PRECOMPOSE_UNICODE_C */
-#define PRECOMPOSE_UNICODE_H
#endif /* PRECOMPOSE_UNICODE_H */
--
2.18.0.553.g74975b7909
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCHv4 6/6] Remove forward declaration of an enum
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
` (4 preceding siblings ...)
2018-08-15 17:54 ` [PATCHv4 5/6] compat/precompose_utf8.h: use more common include guard style Elijah Newren
@ 2018-08-15 17:54 ` Elijah Newren
2018-08-15 20:40 ` Jonathan Nieder
2018-08-15 20:41 ` [PATCHv4 0/6] Add missing includes and forward declares Jonathan Nieder
2018-08-16 0:19 ` Ramsay Jones
7 siblings, 1 reply; 14+ messages in thread
From: Elijah Newren @ 2018-08-15 17:54 UTC (permalink / raw)
To: git; +Cc: avarab, peff, ramsay, jrnieder, Elijah Newren
According to http://c-faq.com/null/machexamp.html, sizeof(char*) !=
sizeof(int*) on some platforms. Since an enum could be a char or int
(or long or...), knowing the size of the enum thus is important to
knowing the size of a pointer to an enum, so we cannot just forward
declare an enum the way we can a struct. (Also, modern C++ compilers
apparently define forward declarations of an enum to either be useless
because the enum was defined, or require an explicit size specifier, or
be a compilation error.)
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
packfile.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packfile.h b/packfile.h
index cc7eaffe1b..fa36c473ad 100644
--- a/packfile.h
+++ b/packfile.h
@@ -1,12 +1,12 @@
#ifndef PACKFILE_H
#define PACKFILE_H
+#include "cache.h"
#include "oidset.h"
/* in object-store.h */
struct packed_git;
struct object_info;
-enum object_type;
/*
* Generate the filename to be used for a pack file with checksum "sha1" and
--
2.18.0.553.g74975b7909
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCHv4 1/6] Add missing includes and forward declarations
2018-08-15 17:54 ` [PATCHv4 1/6] Add missing includes and forward declarations Elijah Newren
@ 2018-08-15 20:36 ` Jonathan Nieder
0 siblings, 0 replies; 14+ messages in thread
From: Jonathan Nieder @ 2018-08-15 20:36 UTC (permalink / raw)
To: Elijah Newren; +Cc: git, avarab, peff, ramsay
Elijah Newren wrote:
[...]
> Signed-off-by: Elijah Newren <newren@gmail.com>
> ---
[...]
> 55 files changed, 132 insertions(+), 4 deletions(-)
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv4 2/6] alloc: make allocate_alloc_state and clear_alloc_state more consistent
2018-08-15 17:54 ` [PATCHv4 2/6] alloc: make allocate_alloc_state and clear_alloc_state more consistent Elijah Newren
@ 2018-08-15 20:37 ` Jonathan Nieder
0 siblings, 0 replies; 14+ messages in thread
From: Jonathan Nieder @ 2018-08-15 20:37 UTC (permalink / raw)
To: Elijah Newren; +Cc: git, avarab, peff, ramsay
Elijah Newren wrote:
> Since both functions are using the same data type, they should either both
> refer to it as void *, or both use the real type (struct alloc_state *).
> Opt for the latter.
>
> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
> Signed-off-by: Elijah Newren <newren@gmail.com>
Not worth rerolling for this, but these usually go in the opposite
order to reflect the chronology:
Signed-off-by: Elijah Newren <newren@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
The patch still looks good to me. :)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv4 6/6] Remove forward declaration of an enum
2018-08-15 17:54 ` [PATCHv4 6/6] Remove forward declaration of an enum Elijah Newren
@ 2018-08-15 20:40 ` Jonathan Nieder
0 siblings, 0 replies; 14+ messages in thread
From: Jonathan Nieder @ 2018-08-15 20:40 UTC (permalink / raw)
To: Elijah Newren; +Cc: git, avarab, peff, ramsay
Elijah Newren wrote:
> According to http://c-faq.com/null/machexamp.html, sizeof(char*) !=
> sizeof(int*) on some platforms. Since an enum could be a char or int
> (or long or...), knowing the size of the enum thus is important to
> knowing the size of a pointer to an enum, so we cannot just forward
> declare an enum the way we can a struct. (Also, modern C++ compilers
> apparently define forward declarations of an enum to either be useless
> because the enum was defined, or require an explicit size specifier, or
> be a compilation error.)
Beyond the effect on some obscure platforms, this also makes it
possible to build with gcc -pedantic (which can be useful for finding
some other problems). Thanks for fixing it.
[...]
> --- a/packfile.h
> +++ b/packfile.h
> @@ -1,12 +1,12 @@
> #ifndef PACKFILE_H
> #define PACKFILE_H
>
> +#include "cache.h"
> #include "oidset.h"
>
> /* in object-store.h */
> struct packed_git;
> struct object_info;
Not about this patch: comments like the above are likely to go stale,
since nothing verifies they continue to be true. So we should remove
them. #leftoverbits
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv4 0/6] Add missing includes and forward declares
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
` (5 preceding siblings ...)
2018-08-15 17:54 ` [PATCHv4 6/6] Remove forward declaration of an enum Elijah Newren
@ 2018-08-15 20:41 ` Jonathan Nieder
2018-08-16 0:19 ` Ramsay Jones
7 siblings, 0 replies; 14+ messages in thread
From: Jonathan Nieder @ 2018-08-15 20:41 UTC (permalink / raw)
To: Elijah Newren; +Cc: git, avarab, peff, ramsay, Junio C Hamano
Elijah Newren wrote:
> 62 files changed, 152 insertions(+), 18 deletions(-)
All 6 patches in this series are
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Thanks for your patient work.
Pointer to previous rounds for the curious:
https://public-inbox.org/git/20180811043218.31456-1-newren@gmail.com/
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv4 0/6] Add missing includes and forward declares
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
` (6 preceding siblings ...)
2018-08-15 20:41 ` [PATCHv4 0/6] Add missing includes and forward declares Jonathan Nieder
@ 2018-08-16 0:19 ` Ramsay Jones
2018-08-16 16:20 ` Junio C Hamano
2018-08-16 17:48 ` Jeff King
7 siblings, 2 replies; 14+ messages in thread
From: Ramsay Jones @ 2018-08-16 0:19 UTC (permalink / raw)
To: Elijah Newren, git; +Cc: avarab, peff, jrnieder
On 15/08/18 18:54, Elijah Newren wrote:
> This series fixes compilation errors when using a simple test.c file that
> includes git-compat-util.h and then exactly one other header (and repeating
> this for different headers of git).
>
[snip]
> 1: f7d50cef3b ! 1: e6a93208b2 Add missing includes and forward declares
> @@ -1,6 +1,13 @@
> Author: Elijah Newren <newren@gmail.com>
>
> - Add missing includes and forward declares
> + Add missing includes and forward declarations
> +
> + I looped over the toplevel header files, creating a temporary two-line C
> + program for each consisting of
> + #include "git-compat-util.h"
> + #include $HEADER
> + This patch is the result of manually fixing errors in compiling those
> + tiny programs.
As a quick ("just before bedtime") exercise, I tried adding
a Makefile target to perform a similar check. The result is
given below, but I haven't had time to look too closely at
the results:
$ make -k hdr-check >zzz 2>&1
$ grep error zzz | wc -l
18
$ grep warning zzz | wc -l
21
$ grep error zzz | cut -d: -f1 | grep -v make | uniq -c | sort -nr
11 refs/refs-internal.h
2 unicode-width.h
2 json-writer.h
1 refs/ref-cache.h
1 commit-slab-impl.h
$ grep warning zzz | cut -d: -f1 | grep -v make | uniq -c | sort -nr
7 refs/refs-internal.h
5 delta-islands.h
2 unicode-width.h
2 midx.h
2 commit-reach.h
1 refs/ref-cache.h
1 refs/packed-backend.h
1 pack-bitmap.h
$
BTW, I happen to be on the 'pu' branch.
I think some of the errors are due to missing compiler flags
(-I, -D, etc); which flags did you pass to the compiler?
Well, it killed 15min. before bed! ;-)
ATB,
Ramsay Jones
-- >8 --
Subject: [PATCH] Makefile: add a hdr-check target
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
Makefile | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Makefile b/Makefile
index 9923db888c..798396c52e 100644
--- a/Makefile
+++ b/Makefile
@@ -2684,6 +2684,16 @@ $(SP_OBJ): %.sp: %.c GIT-CFLAGS FORCE
.PHONY: sparse $(SP_OBJ)
sparse: $(SP_OBJ)
+EXCEPT_HDRS := ./compat% ./xdiff% ./ewah%
+CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(LIB_H))
+HCO = $(patsubst %.h,%.hco,$(CHK_HDRS))
+
+$(HCO): %.hco: %.h FORCE
+ $(CC) -Wall -include git-compat-util.h -I. -o /dev/null -c -xc $<
+
+.PHONY: hdr-check $(HCO)
+hdr-check: $(HCO)
+
.PHONY: style
style:
git clang-format --style file --diff --extensions c,h
--
2.18.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCHv4 0/6] Add missing includes and forward declares
2018-08-16 0:19 ` Ramsay Jones
@ 2018-08-16 16:20 ` Junio C Hamano
2018-08-16 17:48 ` Jeff King
1 sibling, 0 replies; 14+ messages in thread
From: Junio C Hamano @ 2018-08-16 16:20 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Elijah Newren, git, avarab, peff, jrnieder
Ramsay Jones <ramsay@ramsayjones.plus.com> writes:
> BTW, I happen to be on the 'pu' branch.
>
> I think some of the errors are due to missing compiler flags
> (-I, -D, etc); which flags did you pass to the compiler?
>
> Well, it killed 15min. before bed! ;-)
>
> ATB,
> Ramsay Jones
It certainly does look fun. I anticipate (read: mostly "hinting
that I won't be the one who would be doing so") somebody would make
it a real patch, as the current trend seems to be to automate as
much checking as we reasonably can.
> -- >8 --
> Subject: [PATCH] Makefile: add a hdr-check target
>
> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
> ---
> Makefile | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index 9923db888c..798396c52e 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2684,6 +2684,16 @@ $(SP_OBJ): %.sp: %.c GIT-CFLAGS FORCE
> .PHONY: sparse $(SP_OBJ)
> sparse: $(SP_OBJ)
>
> +EXCEPT_HDRS := ./compat% ./xdiff% ./ewah%
> +CHK_HDRS = $(filter-out $(EXCEPT_HDRS),$(LIB_H))
> +HCO = $(patsubst %.h,%.hco,$(CHK_HDRS))
> +
> +$(HCO): %.hco: %.h FORCE
> + $(CC) -Wall -include git-compat-util.h -I. -o /dev/null -c -xc $<
> +
> +.PHONY: hdr-check $(HCO)
> +hdr-check: $(HCO)
> +
> .PHONY: style
> style:
> git clang-format --style file --diff --extensions c,h
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCHv4 0/6] Add missing includes and forward declares
2018-08-16 0:19 ` Ramsay Jones
2018-08-16 16:20 ` Junio C Hamano
@ 2018-08-16 17:48 ` Jeff King
1 sibling, 0 replies; 14+ messages in thread
From: Jeff King @ 2018-08-16 17:48 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Elijah Newren, git, avarab, jrnieder
On Thu, Aug 16, 2018 at 01:19:17AM +0100, Ramsay Jones wrote:
> As a quick ("just before bedtime") exercise, I tried adding
> a Makefile target to perform a similar check. The result is
> given below, but I haven't had time to look too closely at
> the results:
The resulting patch doesn't look too horrible, and I think it would be
great to automate this, even if people don't always run it by default.
The flip side is the "do all files include git-compat-util.h first" test
I mentioned elsewhere (and which resulted in the test-tool.h patch).
That could be automated, too. I did it like:
{
echo '#undef int'
cat git-compat-util.h
} >tmp
mv tmp git-compat-util.h
make CFLAGS=-Dint=foo
That's obviously pretty nasty, but if we were willing to carry:
#ifdef UNDO_TRICKY_LINT_HACK
#undef int
#endif
in git-compat-util.h, it could be driven from the Makefile. Maybe
worth-while to couple with this.
-Peff
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2018-08-16 17:48 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <https://public-inbox.org/git/20180813171749.10481-1-newren@gmail.com/>
2018-08-15 17:54 ` [PATCHv4 0/6] Add missing includes and forward declares Elijah Newren
2018-08-15 17:54 ` [PATCHv4 1/6] Add missing includes and forward declarations Elijah Newren
2018-08-15 20:36 ` Jonathan Nieder
2018-08-15 17:54 ` [PATCHv4 2/6] alloc: make allocate_alloc_state and clear_alloc_state more consistent Elijah Newren
2018-08-15 20:37 ` Jonathan Nieder
2018-08-15 17:54 ` [PATCHv4 3/6] Move definition of enum branch_track from cache.h to branch.h Elijah Newren
2018-08-15 17:54 ` [PATCHv4 4/6] urlmatch.h: fix include guard Elijah Newren
2018-08-15 17:54 ` [PATCHv4 5/6] compat/precompose_utf8.h: use more common include guard style Elijah Newren
2018-08-15 17:54 ` [PATCHv4 6/6] Remove forward declaration of an enum Elijah Newren
2018-08-15 20:40 ` Jonathan Nieder
2018-08-15 20:41 ` [PATCHv4 0/6] Add missing includes and forward declares Jonathan Nieder
2018-08-16 0:19 ` Ramsay Jones
2018-08-16 16:20 ` Junio C Hamano
2018-08-16 17:48 ` Jeff King
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).