summaryrefslogtreecommitdiffstats
path: root/commit.h
diff options
context:
space:
mode:
Diffstat (limited to 'commit.h')
-rw-r--r--commit.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/commit.h b/commit.h
index b5afde1ae9..cb943013d0 100644
--- a/commit.h
+++ b/commit.h
@@ -19,10 +19,13 @@ struct commit_list {
struct commit_list *next;
};
+/*
+ * The size of this struct matters in full repo walk operations like
+ * 'git clone' or 'git gc'. Consider using commit-slab to attach data
+ * to a commit instead of adding new fields here.
+ */
struct commit {
struct object object;
- void *util;
- unsigned int index;
timestamp_t date;
struct commit_list *parents;
@@ -34,6 +37,7 @@ struct commit {
struct tree *maybe_tree;
uint32_t graph_pos;
uint32_t generation;
+ unsigned int index;
};
extern int save_commit_buffer;
@@ -307,16 +311,16 @@ extern const char *find_commit_header(const char *msg, const char *key,
/* Find the end of the log message, the right place for a new trailer. */
extern int ignore_non_trailer(const char *buf, size_t len);
-typedef void (*each_mergetag_fn)(struct commit *commit, struct commit_extra_header *extra,
+typedef int (*each_mergetag_fn)(struct commit *commit, struct commit_extra_header *extra,
void *cb_data);
-extern void for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *data);
+extern int for_each_mergetag(each_mergetag_fn fn, struct commit *commit, void *data);
struct merge_remote_desc {
struct object *obj; /* the named object, could be a tag */
char name[FLEX_ARRAY];
};
-#define merge_remote_util(commit) ((struct merge_remote_desc *)((commit)->util))
+extern struct merge_remote_desc *merge_remote_util(struct commit *);
extern void set_merge_remote_desc(struct commit *commit,
const char *name, struct object *obj);