blob: cb148719bfd3bace27a0ca9611f1c38066fb6ed4 [file] [log] [blame]
Daniel Barkalow2d4177c2007-09-10 23:03:00 -04001#ifndef FETCH_PACK_H
2#define FETCH_PACK_H
3
Michael Haggerty8bee93d2012-09-09 08:19:40 +02004#include "string-list.h"
5
Jonathan Nieder9cba13c2011-03-16 02:08:34 -05006struct fetch_pack_args {
Daniel Barkalow2d4177c2007-09-10 23:03:00 -04007 const char *uploadpack;
Daniel Barkalow2d4177c2007-09-10 23:03:00 -04008 int unpacklimit;
Daniel Barkalow2d4177c2007-09-10 23:03:00 -04009 int depth;
Shawn O. Pearcebbaf4582007-09-18 04:55:00 -040010 unsigned quiet:1,
11 keep_pack:1,
Shawn O. Pearcefa740522007-09-19 00:49:35 -040012 lock_pack:1,
Shawn O. Pearcebbaf4582007-09-18 04:55:00 -040013 use_thin_pack:1,
14 fetch_all:1,
Ivan Todoroski078b8952012-04-02 17:13:48 +020015 stdin_refs:1,
Shawn O. Pearcebbaf4582007-09-18 04:55:00 -040016 verbose:1,
Shawn O. Pearce348e3902008-03-03 22:27:33 -050017 no_progress:1,
Shawn O. Pearce249b2002009-10-30 17:47:42 -070018 include_tag:1,
19 stateless_rpc:1;
Daniel Barkalow2d4177c2007-09-10 23:03:00 -040020};
21
Michael Haggerty4ba15992012-09-09 08:19:43 +020022/*
23 * sought contains the full names of remote references that should be
24 * updated from. On return, the names that were found on the remote
25 * will have been removed from the list. The util members of the
26 * string_list_items are used internally; they must be NULL on entry
27 * (and will be NULL on exit).
28 */
Shawn O. Pearcefa740522007-09-19 00:49:35 -040029struct ref *fetch_pack(struct fetch_pack_args *args,
Michael Haggerty63c69452012-09-09 08:19:39 +020030 int fd[], struct child_process *conn,
31 const struct ref *ref,
32 const char *dest,
Michael Haggerty8bee93d2012-09-09 08:19:40 +020033 struct string_list *sought,
Michael Haggerty63c69452012-09-09 08:19:39 +020034 char **pack_lockfile);
Daniel Barkalow2d4177c2007-09-10 23:03:00 -040035
36#endif