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>
This commit is contained in:
parent
069c053222
commit
614db3e292
42
connected.c
42
connected.c
@ -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.
|
* Returns 0 if everything is connected, non-zero otherwise.
|
||||||
*/
|
*/
|
||||||
int check_everything_connected_with_transport(sha1_iterate_fn fn,
|
static int check_everything_connected_real(sha1_iterate_fn fn,
|
||||||
int quiet,
|
int quiet,
|
||||||
void *cb_data,
|
void *cb_data,
|
||||||
struct transport *transport)
|
struct transport *transport,
|
||||||
|
const char *shallow_file)
|
||||||
{
|
{
|
||||||
struct child_process rev_list;
|
struct child_process rev_list;
|
||||||
const char *argv[] = {"rev-list", "--objects",
|
const char *argv[9];
|
||||||
"--stdin", "--not", "--all", NULL, NULL};
|
|
||||||
char commit[41];
|
char commit[41];
|
||||||
unsigned char sha1[20];
|
unsigned char sha1[20];
|
||||||
int err = 0;
|
int err = 0, ac = 0;
|
||||||
struct packed_git *new_pack = NULL;
|
struct packed_git *new_pack = NULL;
|
||||||
|
|
||||||
if (fn(cb_data, sha1))
|
if (fn(cb_data, sha1))
|
||||||
@ -47,8 +47,18 @@ int check_everything_connected_with_transport(sha1_iterate_fn fn,
|
|||||||
strbuf_release(&idx_file);
|
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)
|
if (quiet)
|
||||||
argv[5] = "--quiet";
|
argv[ac++] = "--quiet";
|
||||||
|
argv[ac] = NULL;
|
||||||
|
|
||||||
memset(&rev_list, 0, sizeof(rev_list));
|
memset(&rev_list, 0, sizeof(rev_list));
|
||||||
rev_list.argv = argv;
|
rev_list.argv = argv;
|
||||||
@ -92,3 +102,19 @@ int check_everything_connected_with_transport(sha1_iterate_fn fn,
|
|||||||
sigchain_pop(SIGPIPE);
|
sigchain_pop(SIGPIPE);
|
||||||
return finish_command(&rev_list) || err;
|
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);
|
||||||
|
}
|
||||||
|
@ -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)
|
* 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_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,
|
extern int check_everything_connected_with_transport(sha1_iterate_fn, int quiet,
|
||||||
void *cb_data,
|
void *cb_data,
|
||||||
struct transport *transport);
|
struct transport *transport);
|
||||||
|
Loading…
Reference in New Issue
Block a user