bundle.c: remove the_repository references
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
4edce1729a
commit
74ae4b638d
@ -40,7 +40,7 @@ int cmd_bundle(int argc, const char **argv, const char *prefix)
|
|||||||
usage(builtin_bundle_usage);
|
usage(builtin_bundle_usage);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (verify_bundle(&header, 1))
|
if (verify_bundle(the_repository, &header, 1))
|
||||||
return 1;
|
return 1;
|
||||||
fprintf(stderr, _("%s is okay\n"), bundle_file);
|
fprintf(stderr, _("%s is okay\n"), bundle_file);
|
||||||
return 0;
|
return 0;
|
||||||
@ -56,11 +56,12 @@ int cmd_bundle(int argc, const char **argv, const char *prefix)
|
|||||||
}
|
}
|
||||||
if (!startup_info->have_repository)
|
if (!startup_info->have_repository)
|
||||||
die(_("Need a repository to create a bundle."));
|
die(_("Need a repository to create a bundle."));
|
||||||
return !!create_bundle(&header, bundle_file, argc, argv);
|
return !!create_bundle(the_repository, &header,
|
||||||
|
bundle_file, argc, argv);
|
||||||
} else if (!strcmp(cmd, "unbundle")) {
|
} else if (!strcmp(cmd, "unbundle")) {
|
||||||
if (!startup_info->have_repository)
|
if (!startup_info->have_repository)
|
||||||
die(_("Need a repository to unbundle."));
|
die(_("Need a repository to unbundle."));
|
||||||
return !!unbundle(&header, bundle_fd, 0) ||
|
return !!unbundle(the_repository, &header, bundle_fd, 0) ||
|
||||||
list_bundle_refs(&header, argc, argv);
|
list_bundle_refs(&header, argc, argv);
|
||||||
} else
|
} else
|
||||||
usage(builtin_bundle_usage);
|
usage(builtin_bundle_usage);
|
||||||
|
26
bundle.c
26
bundle.c
@ -127,7 +127,9 @@ static int list_refs(struct ref_list *r, int argc, const char **argv)
|
|||||||
/* Remember to update object flag allocation in object.h */
|
/* Remember to update object flag allocation in object.h */
|
||||||
#define PREREQ_MARK (1u<<16)
|
#define PREREQ_MARK (1u<<16)
|
||||||
|
|
||||||
int verify_bundle(struct bundle_header *header, int verbose)
|
int verify_bundle(struct repository *r,
|
||||||
|
struct bundle_header *header,
|
||||||
|
int verbose)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Do fast check, then if any prereqs are missing then go line by line
|
* Do fast check, then if any prereqs are missing then go line by line
|
||||||
@ -140,10 +142,10 @@ int verify_bundle(struct bundle_header *header, int verbose)
|
|||||||
int i, ret = 0, req_nr;
|
int i, ret = 0, req_nr;
|
||||||
const char *message = _("Repository lacks these prerequisite commits:");
|
const char *message = _("Repository lacks these prerequisite commits:");
|
||||||
|
|
||||||
repo_init_revisions(the_repository, &revs, NULL);
|
repo_init_revisions(r, &revs, NULL);
|
||||||
for (i = 0; i < p->nr; i++) {
|
for (i = 0; i < p->nr; i++) {
|
||||||
struct ref_list_entry *e = p->list + i;
|
struct ref_list_entry *e = p->list + i;
|
||||||
struct object *o = parse_object(the_repository, &e->oid);
|
struct object *o = parse_object(r, &e->oid);
|
||||||
if (o) {
|
if (o) {
|
||||||
o->flags |= PREREQ_MARK;
|
o->flags |= PREREQ_MARK;
|
||||||
add_pending_object(&revs, o, e->name);
|
add_pending_object(&revs, o, e->name);
|
||||||
@ -168,7 +170,7 @@ int verify_bundle(struct bundle_header *header, int verbose)
|
|||||||
|
|
||||||
for (i = 0; i < p->nr; i++) {
|
for (i = 0; i < p->nr; i++) {
|
||||||
struct ref_list_entry *e = p->list + i;
|
struct ref_list_entry *e = p->list + i;
|
||||||
struct object *o = parse_object(the_repository, &e->oid);
|
struct object *o = parse_object(r, &e->oid);
|
||||||
assert(o); /* otherwise we'd have returned early */
|
assert(o); /* otherwise we'd have returned early */
|
||||||
if (o->flags & SHOWN)
|
if (o->flags & SHOWN)
|
||||||
continue;
|
continue;
|
||||||
@ -180,7 +182,7 @@ int verify_bundle(struct bundle_header *header, int verbose)
|
|||||||
/* Clean up objects used, as they will be reused. */
|
/* Clean up objects used, as they will be reused. */
|
||||||
for (i = 0; i < p->nr; i++) {
|
for (i = 0; i < p->nr; i++) {
|
||||||
struct ref_list_entry *e = p->list + i;
|
struct ref_list_entry *e = p->list + i;
|
||||||
commit = lookup_commit_reference_gently(the_repository, &e->oid, 1);
|
commit = lookup_commit_reference_gently(r, &e->oid, 1);
|
||||||
if (commit)
|
if (commit)
|
||||||
clear_commit_marks(commit, ALL_REV_FLAGS);
|
clear_commit_marks(commit, ALL_REV_FLAGS);
|
||||||
}
|
}
|
||||||
@ -375,8 +377,7 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
|
|||||||
* in terms of a tag (e.g. v2.0 from the range
|
* in terms of a tag (e.g. v2.0 from the range
|
||||||
* "v1.0..v2.0")?
|
* "v1.0..v2.0")?
|
||||||
*/
|
*/
|
||||||
struct commit *one = lookup_commit_reference(the_repository,
|
struct commit *one = lookup_commit_reference(revs->repo, &oid);
|
||||||
&oid);
|
|
||||||
struct object *obj;
|
struct object *obj;
|
||||||
|
|
||||||
if (e->item == &(one->object)) {
|
if (e->item == &(one->object)) {
|
||||||
@ -409,8 +410,8 @@ static int write_bundle_refs(int bundle_fd, struct rev_info *revs)
|
|||||||
return ref_count;
|
return ref_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int create_bundle(struct bundle_header *header, const char *path,
|
int create_bundle(struct repository *r, struct bundle_header *header,
|
||||||
int argc, const char **argv)
|
const char *path, int argc, const char **argv)
|
||||||
{
|
{
|
||||||
struct lock_file lock = LOCK_INIT;
|
struct lock_file lock = LOCK_INIT;
|
||||||
int bundle_fd = -1;
|
int bundle_fd = -1;
|
||||||
@ -441,7 +442,7 @@ int create_bundle(struct bundle_header *header, const char *path,
|
|||||||
|
|
||||||
/* init revs to list objects for pack-objects later */
|
/* init revs to list objects for pack-objects later */
|
||||||
save_commit_buffer = 0;
|
save_commit_buffer = 0;
|
||||||
repo_init_revisions(the_repository, &revs, NULL);
|
repo_init_revisions(r, &revs, NULL);
|
||||||
|
|
||||||
/* write prerequisites */
|
/* write prerequisites */
|
||||||
if (compute_and_write_prerequisites(bundle_fd, &revs, argc, argv))
|
if (compute_and_write_prerequisites(bundle_fd, &revs, argc, argv))
|
||||||
@ -482,7 +483,8 @@ err:
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int unbundle(struct bundle_header *header, int bundle_fd, int flags)
|
int unbundle(struct repository *r, struct bundle_header *header,
|
||||||
|
int bundle_fd, int flags)
|
||||||
{
|
{
|
||||||
const char *argv_index_pack[] = {"index-pack",
|
const char *argv_index_pack[] = {"index-pack",
|
||||||
"--fix-thin", "--stdin", NULL, NULL};
|
"--fix-thin", "--stdin", NULL, NULL};
|
||||||
@ -491,7 +493,7 @@ int unbundle(struct bundle_header *header, int bundle_fd, int flags)
|
|||||||
if (flags & BUNDLE_VERBOSE)
|
if (flags & BUNDLE_VERBOSE)
|
||||||
argv_index_pack[3] = "-v";
|
argv_index_pack[3] = "-v";
|
||||||
|
|
||||||
if (verify_bundle(header, 0))
|
if (verify_bundle(r, header, 0))
|
||||||
return -1;
|
return -1;
|
||||||
ip.argv = argv_index_pack;
|
ip.argv = argv_index_pack;
|
||||||
ip.in = bundle_fd;
|
ip.in = bundle_fd;
|
||||||
|
9
bundle.h
9
bundle.h
@ -18,11 +18,12 @@ struct bundle_header {
|
|||||||
|
|
||||||
int is_bundle(const char *path, int quiet);
|
int is_bundle(const char *path, int quiet);
|
||||||
int read_bundle_header(const char *path, struct bundle_header *header);
|
int read_bundle_header(const char *path, struct bundle_header *header);
|
||||||
int create_bundle(struct bundle_header *header, const char *path,
|
int create_bundle(struct repository *r, struct bundle_header *header,
|
||||||
int argc, const char **argv);
|
const char *path, int argc, const char **argv);
|
||||||
int verify_bundle(struct bundle_header *header, int verbose);
|
int verify_bundle(struct repository *r, struct bundle_header *header, int verbose);
|
||||||
#define BUNDLE_VERBOSE 1
|
#define BUNDLE_VERBOSE 1
|
||||||
int unbundle(struct bundle_header *header, int bundle_fd, int flags);
|
int unbundle(struct repository *r, struct bundle_header *header,
|
||||||
|
int bundle_fd, int flags);
|
||||||
int list_bundle_refs(struct bundle_header *header,
|
int list_bundle_refs(struct bundle_header *header,
|
||||||
int argc, const char **argv);
|
int argc, const char **argv);
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ static int fetch_refs_from_bundle(struct transport *transport,
|
|||||||
int nr_heads, struct ref **to_fetch)
|
int nr_heads, struct ref **to_fetch)
|
||||||
{
|
{
|
||||||
struct bundle_transport_data *data = transport->data;
|
struct bundle_transport_data *data = transport->data;
|
||||||
return unbundle(&data->header, data->fd,
|
return unbundle(the_repository, &data->header, data->fd,
|
||||||
transport->progress ? BUNDLE_VERBOSE : 0);
|
transport->progress ? BUNDLE_VERBOSE : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user