summaryrefslogtreecommitdiff
path: root/commit.h
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2018-06-25 13:22:36 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-06-25 13:22:36 -0700
commita856e7d69f51776e40633d6f1f1f38a7fd64f0d5 (patch)
tree33e27e4586004e0ef097f98a83e0fb359b9d637f /commit.h
parentMerge branch 'nd/commit-util-to-slab' (diff)
parentcommit-graph: fix UX issue when .lock file exists (diff)
downloadtgif-a856e7d69f51776e40633d6f1f1f38a7fd64f0d5.tar.xz
Merge branch 'ds/commit-graph-lockfile-fix'
Update to ds/generation-numbers topic. * ds/commit-graph-lockfile-fix: commit-graph: fix UX issue when .lock file exists commit-graph.txt: update design document merge: check config before loading commits commit: use generation number in remove_redundant() commit: add short-circuit to paint_down_to_common() commit: use generation numbers for in_merge_bases() ref-filter: use generation number for --contains commit-graph: always load commit-graph information commit: use generations in paint_down_to_common() commit-graph: compute generation numbers commit: add generation number to struct commit ref-filter: fix outdated comment on in_commit_list
Diffstat (limited to 'commit.h')
-rw-r--r--commit.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/commit.h b/commit.h
index e48f05dffc..cb943013d0 100644
--- a/commit.h
+++ b/commit.h
@@ -10,6 +10,9 @@
#include "pretty.h"
#define COMMIT_NOT_FROM_GRAPH 0xFFFFFFFF
+#define GENERATION_NUMBER_INFINITY 0xFFFFFFFF
+#define GENERATION_NUMBER_MAX 0x3FFFFFFF
+#define GENERATION_NUMBER_ZERO 0
struct commit_list {
struct commit *item;
@@ -33,6 +36,7 @@ struct commit {
*/
struct tree *maybe_tree;
uint32_t graph_pos;
+ uint32_t generation;
unsigned int index;
};
@@ -72,7 +76,7 @@ struct commit *lookup_commit_reference_by_name(const char *name);
*/
struct commit *lookup_commit_or_die(const struct object_id *oid, const char *ref_name);
-int parse_commit_buffer(struct commit *item, const void *buffer, unsigned long size);
+int parse_commit_buffer(struct commit *item, const void *buffer, unsigned long size, int check_graph);
int parse_commit_gently(struct commit *item, int quiet_on_missing);
static inline int parse_commit(struct commit *item)
{
@@ -341,6 +345,7 @@ extern int remove_signature(struct strbuf *buf);
extern int check_commit_signature(const struct commit *commit, struct signature_check *sigc);
int compare_commits_by_commit_date(const void *a_, const void *b_, void *unused);
+int compare_commits_by_gen_then_commit_date(const void *a_, const void *b_, void *unused);
LAST_ARG_MUST_BE_NULL
extern int run_commit_hook(int editor_is_used, const char *index_file, const char *name, ...);