commit: allow prepare_commit_graft to handle arbitrary repositories
Move the global variable 'commit_graft_prepared' into the object pool and convert the function prepare_commit_graft to work an arbitrary repositories. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Stefan Beller committed
May 17, 2018 at 15:51 UTC
2f6c767fd49a1fb324c2d19fcee1fe227d816e11
2 files changed
+8
-8
commit.c
+6
-8
@@ -196,19 +196,17 @@ static int read_graft_file(struct repository *r, const char *graft_file)
196
return 0;
197
}
198
199
-#define prepare_commit_graft(r) prepare_commit_graft_##r()
200
-static void prepare_commit_graft_the_repository(void)
199
+static void prepare_commit_graft(struct repository *r)
200
{
202
- static int commit_graft_prepared;
201
char *graft_file;
202
205
- if (commit_graft_prepared)
203
+ if (r->parsed_objects->commit_graft_prepared)
204
return;
207
- graft_file = get_graft_file(the_repository);
208
- read_graft_file(the_repository, graft_file);
205
+ graft_file = get_graft_file(r);
206
+ read_graft_file(r, graft_file);
207
/* make sure shallows are read */
210
- is_repository_shallow(the_repository);
211
- commit_graft_prepared = 1;
208
+ is_repository_shallow(r);
209
+ r->parsed_objects->commit_graft_prepared = 1;
210
}
211
212
struct commit_graft *lookup_commit_graft_the_repository(const struct object_id *oid)
object.h
+2
@@ -20,6 +20,8 @@ struct parsed_object_pool {
20
int is_shallow;
21
struct stat_validity *shallow_stat;
22
char *alternate_shallow_file;
23
+
24
+ int commit_graft_prepared;
25
};
26
27
struct parsed_object_pool *parsed_object_pool_new(void);