mirror of
https://github.com/git/git.git
synced 2024-05-09 05:36:10 +02:00
commit: convert register_commit_graft to handle arbitrary repositories
Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e808656c46
commit
a3b78e833b
29
commit.c
29
commit.c
|
@ -111,30 +111,31 @@ static int commit_graft_pos(struct repository *r, const unsigned char *sha1)
|
||||||
commit_graft_sha1_access);
|
commit_graft_sha1_access);
|
||||||
}
|
}
|
||||||
|
|
||||||
int register_commit_graft_the_repository(struct commit_graft *graft, int ignore_dups)
|
int register_commit_graft(struct repository *r, struct commit_graft *graft,
|
||||||
|
int ignore_dups)
|
||||||
{
|
{
|
||||||
int pos = commit_graft_pos(the_repository, graft->oid.hash);
|
int pos = commit_graft_pos(r, graft->oid.hash);
|
||||||
|
|
||||||
if (0 <= pos) {
|
if (0 <= pos) {
|
||||||
if (ignore_dups)
|
if (ignore_dups)
|
||||||
free(graft);
|
free(graft);
|
||||||
else {
|
else {
|
||||||
free(the_repository->parsed_objects->grafts[pos]);
|
free(r->parsed_objects->grafts[pos]);
|
||||||
the_repository->parsed_objects->grafts[pos] = graft;
|
r->parsed_objects->grafts[pos] = graft;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
pos = -pos - 1;
|
pos = -pos - 1;
|
||||||
ALLOC_GROW(the_repository->parsed_objects->grafts,
|
ALLOC_GROW(r->parsed_objects->grafts,
|
||||||
the_repository->parsed_objects->grafts_nr + 1,
|
r->parsed_objects->grafts_nr + 1,
|
||||||
the_repository->parsed_objects->grafts_alloc);
|
r->parsed_objects->grafts_alloc);
|
||||||
the_repository->parsed_objects->grafts_nr++;
|
r->parsed_objects->grafts_nr++;
|
||||||
if (pos < the_repository->parsed_objects->grafts_nr)
|
if (pos < r->parsed_objects->grafts_nr)
|
||||||
memmove(the_repository->parsed_objects->grafts + pos + 1,
|
memmove(r->parsed_objects->grafts + pos + 1,
|
||||||
the_repository->parsed_objects->grafts + pos,
|
r->parsed_objects->grafts + pos,
|
||||||
(the_repository->parsed_objects->grafts_nr - pos - 1) *
|
(r->parsed_objects->grafts_nr - pos - 1) *
|
||||||
sizeof(*the_repository->parsed_objects->grafts));
|
sizeof(*r->parsed_objects->grafts));
|
||||||
the_repository->parsed_objects->grafts[pos] = graft;
|
r->parsed_objects->grafts[pos] = graft;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
3
commit.h
3
commit.h
|
@ -174,8 +174,7 @@ struct commit_graft {
|
||||||
typedef int (*each_commit_graft_fn)(const struct commit_graft *, void *);
|
typedef int (*each_commit_graft_fn)(const struct commit_graft *, void *);
|
||||||
|
|
||||||
struct commit_graft *read_graft_line(struct strbuf *line);
|
struct commit_graft *read_graft_line(struct strbuf *line);
|
||||||
#define register_commit_graft(r, g, i) register_commit_graft_##r(g, i)
|
int register_commit_graft(struct repository *r, struct commit_graft *, int);
|
||||||
int register_commit_graft_the_repository(struct commit_graft *, int);
|
|
||||||
#define lookup_commit_graft(r, o) lookup_commit_graft_##r(o)
|
#define lookup_commit_graft(r, o) lookup_commit_graft_##r(o)
|
||||||
struct commit_graft *lookup_commit_graft_the_repository(const struct object_id *oid);
|
struct commit_graft *lookup_commit_graft_the_repository(const struct object_id *oid);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue