shallow: add repository argument to is_repository_shallow
Add a repository argument to allow callers of is_repository_shallow to be more specific about which repository to handle. This is a small mechanical change; it doesn't change the implementation to handle repositories other than the_repository yet. As with the previous commits, use a macro to catch callers passing a repository other than the_repository at compile time. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
22bdc7c4ff
commit
c88134870e
@ -1445,7 +1445,7 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
|
|||||||
if (unshallow) {
|
if (unshallow) {
|
||||||
if (depth)
|
if (depth)
|
||||||
die(_("--depth and --unshallow cannot be used together"));
|
die(_("--depth and --unshallow cannot be used together"));
|
||||||
else if (!is_repository_shallow())
|
else if (!is_repository_shallow(the_repository))
|
||||||
die(_("--unshallow on a complete repository does not make sense"));
|
die(_("--unshallow on a complete repository does not make sense"));
|
||||||
else
|
else
|
||||||
depth = xstrfmt("%d", INFINITE_DEPTH);
|
depth = xstrfmt("%d", INFINITE_DEPTH);
|
||||||
|
@ -2857,7 +2857,7 @@ static void get_object_list(int ac, const char **av)
|
|||||||
setup_revisions(ac, av, &revs, NULL);
|
setup_revisions(ac, av, &revs, NULL);
|
||||||
|
|
||||||
/* make sure shallows are read */
|
/* make sure shallows are read */
|
||||||
is_repository_shallow();
|
is_repository_shallow(the_repository);
|
||||||
|
|
||||||
while (fgets(line, sizeof(line), stdin) != NULL) {
|
while (fgets(line, sizeof(line), stdin) != NULL) {
|
||||||
int len = strlen(line);
|
int len = strlen(line);
|
||||||
@ -3142,7 +3142,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
|
|||||||
use_bitmap_index = use_bitmap_index_default;
|
use_bitmap_index = use_bitmap_index_default;
|
||||||
|
|
||||||
/* "hard" reasons not to use bitmaps; these just won't work at all */
|
/* "hard" reasons not to use bitmaps; these just won't work at all */
|
||||||
if (!use_internal_rev_list || (!pack_to_stdout && write_bitmap_index) || is_repository_shallow())
|
if (!use_internal_rev_list || (!pack_to_stdout && write_bitmap_index) || is_repository_shallow(the_repository))
|
||||||
use_bitmap_index = 0;
|
use_bitmap_index = 0;
|
||||||
|
|
||||||
if (pack_to_stdout || !rev_list_all)
|
if (pack_to_stdout || !rev_list_all)
|
||||||
|
@ -160,7 +160,7 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
|
|||||||
remove_temporary_files(s);
|
remove_temporary_files(s);
|
||||||
free(s);
|
free(s);
|
||||||
|
|
||||||
if (is_repository_shallow())
|
if (is_repository_shallow(the_repository))
|
||||||
prune_shallow(show_only);
|
prune_shallow(show_only);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -879,7 +879,8 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!strcmp(arg, "--is-shallow-repository")) {
|
if (!strcmp(arg, "--is-shallow-repository")) {
|
||||||
printf("%s\n", is_repository_shallow() ? "true"
|
printf("%s\n",
|
||||||
|
is_repository_shallow(the_repository) ? "true"
|
||||||
: "false");
|
: "false");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
2
commit.c
2
commit.c
@ -208,7 +208,7 @@ static void prepare_commit_graft_the_repository(void)
|
|||||||
graft_file = get_graft_file();
|
graft_file = get_graft_file();
|
||||||
read_graft_file(the_repository, graft_file);
|
read_graft_file(the_repository, graft_file);
|
||||||
/* make sure shallows are read */
|
/* make sure shallows are read */
|
||||||
is_repository_shallow();
|
is_repository_shallow(the_repository);
|
||||||
commit_graft_prepared = 1;
|
commit_graft_prepared = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
3
commit.h
3
commit.h
@ -195,7 +195,8 @@ struct ref;
|
|||||||
extern int register_shallow_the_repository(const struct object_id *oid);
|
extern int register_shallow_the_repository(const struct object_id *oid);
|
||||||
extern int unregister_shallow(const struct object_id *oid);
|
extern int unregister_shallow(const struct object_id *oid);
|
||||||
extern int for_each_commit_graft(each_commit_graft_fn, void *);
|
extern int for_each_commit_graft(each_commit_graft_fn, void *);
|
||||||
extern int is_repository_shallow(void);
|
#define is_repository_shallow(r) is_repository_shallow_##r()
|
||||||
|
extern int is_repository_shallow_the_repository(void);
|
||||||
extern struct commit_list *get_shallow_commits(struct object_array *heads,
|
extern struct commit_list *get_shallow_commits(struct object_array *heads,
|
||||||
int depth, int shallow_flag, int not_shallow_flag);
|
int depth, int shallow_flag, int not_shallow_flag);
|
||||||
extern struct commit_list *get_shallow_commits_by_rev_list(
|
extern struct commit_list *get_shallow_commits_by_rev_list(
|
||||||
|
@ -397,7 +397,7 @@ static int find_common(struct fetch_pack_args *args,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_repository_shallow())
|
if (is_repository_shallow(the_repository))
|
||||||
write_shallow_commits(&req_buf, 1, NULL);
|
write_shallow_commits(&req_buf, 1, NULL);
|
||||||
if (args->depth > 0)
|
if (args->depth > 0)
|
||||||
packet_buf_write(&req_buf, "deepen %d", args->depth);
|
packet_buf_write(&req_buf, "deepen %d", args->depth);
|
||||||
@ -986,7 +986,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
|
|||||||
sort_ref_list(&ref, ref_compare_name);
|
sort_ref_list(&ref, ref_compare_name);
|
||||||
QSORT(sought, nr_sought, cmp_ref_by_name);
|
QSORT(sought, nr_sought, cmp_ref_by_name);
|
||||||
|
|
||||||
if ((args->depth > 0 || is_repository_shallow()) && !server_supports("shallow"))
|
if ((args->depth > 0 || is_repository_shallow(the_repository)) && !server_supports("shallow"))
|
||||||
die(_("Server does not support shallow clients"));
|
die(_("Server does not support shallow clients"));
|
||||||
if (args->depth > 0 || args->deepen_since || args->deepen_not)
|
if (args->depth > 0 || args->deepen_since || args->deepen_not)
|
||||||
args->deepen = 1;
|
args->deepen = 1;
|
||||||
|
@ -76,7 +76,7 @@ static int pack_objects(int fd, struct ref *refs, struct oid_array *extra, struc
|
|||||||
argv_array_push(&po.args, "-q");
|
argv_array_push(&po.args, "-q");
|
||||||
if (args->progress)
|
if (args->progress)
|
||||||
argv_array_push(&po.args, "--progress");
|
argv_array_push(&po.args, "--progress");
|
||||||
if (is_repository_shallow())
|
if (is_repository_shallow(the_repository))
|
||||||
argv_array_push(&po.args, "--shallow");
|
argv_array_push(&po.args, "--shallow");
|
||||||
po.in = -1;
|
po.in = -1;
|
||||||
po.out = args->stateless_rpc ? -1 : fd;
|
po.out = args->stateless_rpc ? -1 : fd;
|
||||||
@ -221,7 +221,7 @@ static int advertise_shallow_grafts_cb(const struct commit_graft *graft, void *c
|
|||||||
|
|
||||||
static void advertise_shallow_grafts_buf(struct strbuf *sb)
|
static void advertise_shallow_grafts_buf(struct strbuf *sb)
|
||||||
{
|
{
|
||||||
if (!is_repository_shallow())
|
if (!is_repository_shallow(the_repository))
|
||||||
return;
|
return;
|
||||||
for_each_commit_graft(advertise_shallow_grafts_cb, sb);
|
for_each_commit_graft(advertise_shallow_grafts_cb, sb);
|
||||||
}
|
}
|
||||||
@ -538,7 +538,7 @@ int send_pack(struct send_pack_args *args,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (args->stateless_rpc) {
|
if (args->stateless_rpc) {
|
||||||
if (!args->dry_run && (cmds_sent || is_repository_shallow())) {
|
if (!args->dry_run && (cmds_sent || is_repository_shallow(the_repository))) {
|
||||||
packet_buf_flush(&req_buf);
|
packet_buf_flush(&req_buf);
|
||||||
send_sideband(out, -1, req_buf.buf, req_buf.len, LARGE_PACKET_MAX);
|
send_sideband(out, -1, req_buf.buf, req_buf.len, LARGE_PACKET_MAX);
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ int register_shallow_the_repository(const struct object_id *oid)
|
|||||||
return register_commit_graft(the_repository, graft, 0);
|
return register_commit_graft(the_repository, graft, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int is_repository_shallow(void)
|
int is_repository_shallow_the_repository(void)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
@ -108,7 +108,7 @@ struct commit_list *get_shallow_commits(struct object_array *heads, int depth,
|
|||||||
parse_commit_or_die(commit);
|
parse_commit_or_die(commit);
|
||||||
cur_depth++;
|
cur_depth++;
|
||||||
if ((depth != INFINITE_DEPTH && cur_depth >= depth) ||
|
if ((depth != INFINITE_DEPTH && cur_depth >= depth) ||
|
||||||
(is_repository_shallow() && !commit->parents &&
|
(is_repository_shallow(the_repository) && !commit->parents &&
|
||||||
(graft = lookup_commit_graft(the_repository, &commit->object.oid)) != NULL &&
|
(graft = lookup_commit_graft(the_repository, &commit->object.oid)) != NULL &&
|
||||||
graft->nr_parent < 0)) {
|
graft->nr_parent < 0)) {
|
||||||
commit_list_insert(commit, &result);
|
commit_list_insert(commit, &result);
|
||||||
@ -167,7 +167,7 @@ struct commit_list *get_shallow_commits_by_rev_list(int ac, const char **av,
|
|||||||
*/
|
*/
|
||||||
clear_object_flags(both_flags);
|
clear_object_flags(both_flags);
|
||||||
|
|
||||||
is_repository_shallow(); /* make sure shallows are read */
|
is_repository_shallow(the_repository); /* make sure shallows are read */
|
||||||
|
|
||||||
init_revisions(&revs, NULL);
|
init_revisions(&revs, NULL);
|
||||||
save_commit_buffer = 0;
|
save_commit_buffer = 0;
|
||||||
@ -345,7 +345,7 @@ static int advertise_shallow_grafts_cb(const struct commit_graft *graft, void *c
|
|||||||
|
|
||||||
void advertise_shallow_grafts(int fd)
|
void advertise_shallow_grafts(int fd)
|
||||||
{
|
{
|
||||||
if (!is_repository_shallow())
|
if (!is_repository_shallow(the_repository))
|
||||||
return;
|
return;
|
||||||
for_each_commit_graft(advertise_shallow_grafts_cb, &fd);
|
for_each_commit_graft(advertise_shallow_grafts_cb, &fd);
|
||||||
}
|
}
|
||||||
|
@ -707,7 +707,7 @@ static void send_unshallow(const struct object_array *shallows)
|
|||||||
static void deepen(int depth, int deepen_relative,
|
static void deepen(int depth, int deepen_relative,
|
||||||
struct object_array *shallows)
|
struct object_array *shallows)
|
||||||
{
|
{
|
||||||
if (depth == INFINITE_DEPTH && !is_repository_shallow()) {
|
if (depth == INFINITE_DEPTH && !is_repository_shallow(the_repository)) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < shallows->nr; i++) {
|
for (i = 0; i < shallows->nr; i++) {
|
||||||
|
Reference in New Issue
Block a user