summaryrefslogtreecommitdiff
path: root/commit.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-08-02 22:30:39 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-08-02 22:30:40 (GMT)
commitb006f01ab5b6aa912f2c577c4af441564c6c78a4 (patch)
tree747b0912ca315263a84f61fb1868a1f932ccec4d /commit.c
parentbd1a32d5c8ec5987824acb63694361d082ce9092 (diff)
parentb18ef13a3fc5ed6e77980f67a7f3ca89050c1715 (diff)
downloadgit-b006f01ab5b6aa912f2c577c4af441564c6c78a4.zip
git-b006f01ab5b6aa912f2c577c4af441564c6c78a4.tar.gz
git-b006f01ab5b6aa912f2c577c4af441564c6c78a4.tar.bz2
Merge branch 'ds/commit-graph-fsck'
"git fsck" learns to make sure the optional commit-graph file is in a sane state. * ds/commit-graph-fsck: (23 commits) coccinelle: update commit.cocci commit-graph: update design document gc: automatically write commit-graph files commit-graph: add '--reachable' option commit-graph: use string-list API for input fsck: verify commit-graph commit-graph: verify contents match checksum commit-graph: test for corrupted octopus edge commit-graph: verify commit date commit-graph: verify generation number commit-graph: verify parent list commit-graph: verify root tree OIDs commit-graph: verify objects exist commit-graph: verify corrupt OID fanout and lookup commit-graph: verify required chunks are present commit-graph: verify catches corrupt signature commit-graph: add 'verify' subcommand commit-graph: load a root tree from specific graph commit: force commit to parse from object database commit-graph: parse commit from chosen graph ...
Diffstat (limited to 'commit.c')
-rw-r--r--commit.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/commit.c b/commit.c
index bbca413..8985c9c 100644
--- a/commit.c
+++ b/commit.c
@@ -423,7 +423,7 @@ int parse_commit_buffer(struct commit *item, const void *buffer, unsigned long s
return 0;
}
-int parse_commit_gently(struct commit *item, int quiet_on_missing)
+int parse_commit_internal(struct commit *item, int quiet_on_missing, int use_commit_graph)
{
enum object_type type;
void *buffer;
@@ -434,7 +434,7 @@ int parse_commit_gently(struct commit *item, int quiet_on_missing)
return -1;
if (item->object.parsed)
return 0;
- if (parse_commit_in_graph(item))
+ if (use_commit_graph && parse_commit_in_graph(item))
return 0;
buffer = read_object_file(&item->object.oid, &type, &size);
if (!buffer)
@@ -446,6 +446,7 @@ int parse_commit_gently(struct commit *item, int quiet_on_missing)
return error("Object %s not a commit",
oid_to_hex(&item->object.oid));
}
+
ret = parse_commit_buffer(item, buffer, size, 0);
if (save_commit_buffer && !ret) {
set_commit_buffer(item, buffer, size);
@@ -455,6 +456,11 @@ int parse_commit_gently(struct commit *item, int quiet_on_missing)
return ret;
}
+int parse_commit_gently(struct commit *item, int quiet_on_missing)
+{
+ return parse_commit_internal(item, quiet_on_missing, 1);
+}
+
void parse_commit_or_die(struct commit *item)
{
if (parse_commit(item))