mirror of
https://github.com/git/git.git
synced 2024-05-31 00:16:20 +02:00
blame.c: remove implicit dependency the_repository
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
005af339c9
commit
fb998eae6c
39
blame.c
39
blame.c
|
@ -116,35 +116,38 @@ static void verify_working_tree_path(struct repository *r,
|
||||||
die("no such path '%s' in HEAD", path);
|
die("no such path '%s' in HEAD", path);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct commit_list **append_parent(struct commit_list **tail, const struct object_id *oid)
|
static struct commit_list **append_parent(struct repository *r,
|
||||||
|
struct commit_list **tail,
|
||||||
|
const struct object_id *oid)
|
||||||
{
|
{
|
||||||
struct commit *parent;
|
struct commit *parent;
|
||||||
|
|
||||||
parent = lookup_commit_reference(the_repository, oid);
|
parent = lookup_commit_reference(r, oid);
|
||||||
if (!parent)
|
if (!parent)
|
||||||
die("no such commit %s", oid_to_hex(oid));
|
die("no such commit %s", oid_to_hex(oid));
|
||||||
return &commit_list_insert(parent, tail)->next;
|
return &commit_list_insert(parent, tail)->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void append_merge_parents(struct commit_list **tail)
|
static void append_merge_parents(struct repository *r,
|
||||||
|
struct commit_list **tail)
|
||||||
{
|
{
|
||||||
int merge_head;
|
int merge_head;
|
||||||
struct strbuf line = STRBUF_INIT;
|
struct strbuf line = STRBUF_INIT;
|
||||||
|
|
||||||
merge_head = open(git_path_merge_head(the_repository), O_RDONLY);
|
merge_head = open(git_path_merge_head(r), O_RDONLY);
|
||||||
if (merge_head < 0) {
|
if (merge_head < 0) {
|
||||||
if (errno == ENOENT)
|
if (errno == ENOENT)
|
||||||
return;
|
return;
|
||||||
die("cannot open '%s' for reading",
|
die("cannot open '%s' for reading",
|
||||||
git_path_merge_head(the_repository));
|
git_path_merge_head(r));
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!strbuf_getwholeline_fd(&line, merge_head, '\n')) {
|
while (!strbuf_getwholeline_fd(&line, merge_head, '\n')) {
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
if (line.len < GIT_SHA1_HEXSZ || get_oid_hex(line.buf, &oid))
|
if (line.len < GIT_SHA1_HEXSZ || get_oid_hex(line.buf, &oid))
|
||||||
die("unknown line in '%s': %s",
|
die("unknown line in '%s': %s",
|
||||||
git_path_merge_head(the_repository), line.buf);
|
git_path_merge_head(r), line.buf);
|
||||||
tail = append_parent(tail, &oid);
|
tail = append_parent(r, tail, &oid);
|
||||||
}
|
}
|
||||||
close(merge_head);
|
close(merge_head);
|
||||||
strbuf_release(&line);
|
strbuf_release(&line);
|
||||||
|
@ -155,11 +158,13 @@ static void append_merge_parents(struct commit_list **tail)
|
||||||
* want to transfer ownership of the buffer to the commit (so we
|
* want to transfer ownership of the buffer to the commit (so we
|
||||||
* must use detach).
|
* must use detach).
|
||||||
*/
|
*/
|
||||||
static void set_commit_buffer_from_strbuf(struct commit *c, struct strbuf *sb)
|
static void set_commit_buffer_from_strbuf(struct repository *r,
|
||||||
|
struct commit *c,
|
||||||
|
struct strbuf *sb)
|
||||||
{
|
{
|
||||||
size_t len;
|
size_t len;
|
||||||
void *buf = strbuf_detach(sb, &len);
|
void *buf = strbuf_detach(sb, &len);
|
||||||
set_commit_buffer(the_repository, c, buf, len);
|
set_commit_buffer(r, c, buf, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -185,7 +190,7 @@ static struct commit *fake_working_tree_commit(struct repository *r,
|
||||||
|
|
||||||
read_index(r->index);
|
read_index(r->index);
|
||||||
time(&now);
|
time(&now);
|
||||||
commit = alloc_commit_node(the_repository);
|
commit = alloc_commit_node(r);
|
||||||
commit->object.parsed = 1;
|
commit->object.parsed = 1;
|
||||||
commit->date = now;
|
commit->date = now;
|
||||||
parent_tail = &commit->parents;
|
parent_tail = &commit->parents;
|
||||||
|
@ -193,8 +198,8 @@ static struct commit *fake_working_tree_commit(struct repository *r,
|
||||||
if (!resolve_ref_unsafe("HEAD", RESOLVE_REF_READING, &head_oid, NULL))
|
if (!resolve_ref_unsafe("HEAD", RESOLVE_REF_READING, &head_oid, NULL))
|
||||||
die("no such ref: HEAD");
|
die("no such ref: HEAD");
|
||||||
|
|
||||||
parent_tail = append_parent(parent_tail, &head_oid);
|
parent_tail = append_parent(r, parent_tail, &head_oid);
|
||||||
append_merge_parents(parent_tail);
|
append_merge_parents(r, parent_tail);
|
||||||
verify_working_tree_path(r, commit, path);
|
verify_working_tree_path(r, commit, path);
|
||||||
|
|
||||||
origin = make_origin(commit, path);
|
origin = make_origin(commit, path);
|
||||||
|
@ -211,7 +216,7 @@ static struct commit *fake_working_tree_commit(struct repository *r,
|
||||||
ident, ident, path,
|
ident, ident, path,
|
||||||
(!contents_from ? path :
|
(!contents_from ? path :
|
||||||
(!strcmp(contents_from, "-") ? "standard input" : contents_from)));
|
(!strcmp(contents_from, "-") ? "standard input" : contents_from)));
|
||||||
set_commit_buffer_from_strbuf(commit, &msg);
|
set_commit_buffer_from_strbuf(r, commit, &msg);
|
||||||
|
|
||||||
if (!contents_from || strcmp("-", contents_from)) {
|
if (!contents_from || strcmp("-", contents_from)) {
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
@ -1678,7 +1683,7 @@ static struct commit *find_single_final(struct rev_info *revs,
|
||||||
struct object *obj = revs->pending.objects[i].item;
|
struct object *obj = revs->pending.objects[i].item;
|
||||||
if (obj->flags & UNINTERESTING)
|
if (obj->flags & UNINTERESTING)
|
||||||
continue;
|
continue;
|
||||||
obj = deref_tag(the_repository, obj, NULL, 0);
|
obj = deref_tag(revs->repo, obj, NULL, 0);
|
||||||
if (obj->type != OBJ_COMMIT)
|
if (obj->type != OBJ_COMMIT)
|
||||||
die("Non commit %s?", revs->pending.objects[i].name);
|
die("Non commit %s?", revs->pending.objects[i].name);
|
||||||
if (found)
|
if (found)
|
||||||
|
@ -1709,14 +1714,14 @@ static struct commit *dwim_reverse_initial(struct rev_info *revs,
|
||||||
|
|
||||||
/* Is that sole rev a committish? */
|
/* Is that sole rev a committish? */
|
||||||
obj = revs->pending.objects[0].item;
|
obj = revs->pending.objects[0].item;
|
||||||
obj = deref_tag(the_repository, obj, NULL, 0);
|
obj = deref_tag(revs->repo, obj, NULL, 0);
|
||||||
if (obj->type != OBJ_COMMIT)
|
if (obj->type != OBJ_COMMIT)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* Do we have HEAD? */
|
/* Do we have HEAD? */
|
||||||
if (!resolve_ref_unsafe("HEAD", RESOLVE_REF_READING, &head_oid, NULL))
|
if (!resolve_ref_unsafe("HEAD", RESOLVE_REF_READING, &head_oid, NULL))
|
||||||
return NULL;
|
return NULL;
|
||||||
head_commit = lookup_commit_reference_gently(the_repository,
|
head_commit = lookup_commit_reference_gently(revs->repo,
|
||||||
&head_oid, 1);
|
&head_oid, 1);
|
||||||
if (!head_commit)
|
if (!head_commit)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -1745,7 +1750,7 @@ static struct commit *find_single_initial(struct rev_info *revs,
|
||||||
struct object *obj = revs->pending.objects[i].item;
|
struct object *obj = revs->pending.objects[i].item;
|
||||||
if (!(obj->flags & UNINTERESTING))
|
if (!(obj->flags & UNINTERESTING))
|
||||||
continue;
|
continue;
|
||||||
obj = deref_tag(the_repository, obj, NULL, 0);
|
obj = deref_tag(revs->repo, obj, NULL, 0);
|
||||||
if (obj->type != OBJ_COMMIT)
|
if (obj->type != OBJ_COMMIT)
|
||||||
die("Non commit %s?", revs->pending.objects[i].name);
|
die("Non commit %s?", revs->pending.objects[i].name);
|
||||||
if (found)
|
if (found)
|
||||||
|
|
Loading…
Reference in New Issue