Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
connected.c: add new variant that runs with --shallow-file
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Nguyễn Thái Ngọc Duy authored and Junio C Hamano committed Dec 11, 2013
1 parent 069c053 commit 614db3e
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 8 deletions.
42 changes: 34 additions & 8 deletions connected.c
Expand Up @@ -19,17 +19,17 @@ int check_everything_connected(sha1_iterate_fn fn, int quiet, void *cb_data)
*
* Returns 0 if everything is connected, non-zero otherwise.
*/
int check_everything_connected_with_transport(sha1_iterate_fn fn,
int quiet,
void *cb_data,
struct transport *transport)
static int check_everything_connected_real(sha1_iterate_fn fn,
int quiet,
void *cb_data,
struct transport *transport,
const char *shallow_file)
{
struct child_process rev_list;
const char *argv[] = {"rev-list", "--objects",
"--stdin", "--not", "--all", NULL, NULL};
const char *argv[9];
char commit[41];
unsigned char sha1[20];
int err = 0;
int err = 0, ac = 0;
struct packed_git *new_pack = NULL;

if (fn(cb_data, sha1))
Expand All @@ -47,8 +47,18 @@ int check_everything_connected_with_transport(sha1_iterate_fn fn,
strbuf_release(&idx_file);
}

if (shallow_file) {
argv[ac++] = "--shallow-file";
argv[ac++] = shallow_file;
}
argv[ac++] = "rev-list";
argv[ac++] = "--objects";
argv[ac++] = "--stdin";
argv[ac++] = "--not";
argv[ac++] = "--all";
if (quiet)
argv[5] = "--quiet";
argv[ac++] = "--quiet";
argv[ac] = NULL;

memset(&rev_list, 0, sizeof(rev_list));
rev_list.argv = argv;
Expand Down Expand Up @@ -92,3 +102,19 @@ int check_everything_connected_with_transport(sha1_iterate_fn fn,
sigchain_pop(SIGPIPE);
return finish_command(&rev_list) || err;
}

int check_everything_connected_with_transport(sha1_iterate_fn fn,
int quiet,
void *cb_data,
struct transport *transport)
{
return check_everything_connected_real(fn, quiet, cb_data,
transport, NULL);
}

int check_shallow_connected(sha1_iterate_fn fn, int quiet, void *cb_data,
const char *shallow_file)
{
return check_everything_connected_real(fn, quiet, cb_data,
NULL, shallow_file);
}
2 changes: 2 additions & 0 deletions connected.h
Expand Up @@ -18,6 +18,8 @@ typedef int (*sha1_iterate_fn)(void *, unsigned char [20]);
* Return 0 if Ok, non zero otherwise (i.e. some missing objects)
*/
extern int check_everything_connected(sha1_iterate_fn, int quiet, void *cb_data);
extern int check_shallow_connected(sha1_iterate_fn, int quiet, void *cb_data,
const char *shallow_file);
extern int check_everything_connected_with_transport(sha1_iterate_fn, int quiet,
void *cb_data,
struct transport *transport);
Expand Down

0 comments on commit 614db3e

Please sign in to comment.