Add new `git update` tool
[git] / fetch-pack.h
1 #ifndef FETCH_PACK_H
2 #define FETCH_PACK_H
3
4 #include "string-list.h"
5 #include "run-command.h"
6
7 struct sha1_array;
8
9 struct fetch_pack_args {
10         const char *uploadpack;
11         int unpacklimit;
12         int depth;
13         unsigned quiet:1;
14         unsigned keep_pack:1;
15         unsigned lock_pack:1;
16         unsigned use_thin_pack:1;
17         unsigned fetch_all:1;
18         unsigned stdin_refs:1;
19         unsigned diag_url:1;
20         unsigned verbose:1;
21         unsigned no_progress:1;
22         unsigned include_tag:1;
23         unsigned stateless_rpc:1;
24         unsigned check_self_contained_and_connected:1;
25         unsigned self_contained_and_connected:1;
26         unsigned cloning:1;
27         unsigned update_shallow:1;
28 };
29
30 /*
31  * sought represents remote references that should be updated from.
32  * On return, the names that were found on the remote will have been
33  * marked as such.
34  */
35 struct ref *fetch_pack(struct fetch_pack_args *args,
36                        int fd[], struct child_process *conn,
37                        const struct ref *ref,
38                        const char *dest,
39                        struct ref **sought,
40                        int nr_sought,
41                        struct sha1_array *shallow,
42                        char **pack_lockfile);
43
44 #endif