#include "common.h"
-#include "buffer.h"
+#include "str.h"
#include "hash.h"
#include "oidmap.h"
#include "netops.h"
#include "zstream.h"
#include "pool.h"
+#include "indexer.h"
#include "git2/oid.h"
#include "git2/pack.h"
typedef struct git_pobject {
git_oid id;
- git_otype type;
- git_off_t offset;
+ git_object_t type;
+ off64_t offset;
size_t size;
* me */
void *delta_data;
- unsigned long delta_size;
- unsigned long z_delta_size;
+ size_t delta_size;
+ size_t z_delta_size;
- int written:1,
- recursing:1,
- tagged:1,
- filled:1;
+ unsigned int written:1,
+ recursing:1,
+ tagged:1,
+ filled:1;
} git_pobject;
-typedef struct {
- git_oid id;
- unsigned int uninteresting:1,
- seen:1;
-} git_walk_object;
-
struct git_packbuilder {
git_repository *repo; /* associated repository */
git_odb *odb; /* associated object database */
git_zstream zstream;
uint32_t nr_objects,
- nr_deltified,
- nr_alloc,
- nr_written,
- nr_remaining;
+ nr_deltified,
+ nr_written,
+ nr_remaining;
+
+ size_t nr_alloc;
git_pobject *object_list;
git_oidmap *walk_objects;
git_pool object_pool;
+#ifndef GIT_DEPRECATE_HARD
git_oid pack_oid; /* hash of written pack */
+#endif
+ char *pack_name; /* name of written pack */
/* synchronization objects */
git_mutex cache_mutex;
git_cond progress_cond;
/* configs */
- uint64_t delta_cache_size;
- uint64_t max_delta_cache_size;
- uint64_t cache_max_small_delta_size;
- uint64_t big_file_threshold;
- uint64_t window_memory_limit;
+ size_t delta_cache_size;
+ size_t max_delta_cache_size;
+ size_t cache_max_small_delta_size;
+ size_t big_file_threshold;
+ size_t window_memory_limit;
- int nr_threads; /* nr of threads to use */
+ unsigned int nr_threads; /* nr of threads to use */
git_packbuilder_progress progress_cb;
void *progress_cb_payload;
bool done;
};
-int git_packbuilder_write_buf(git_buf *buf, git_packbuilder *pb);
+int git_packbuilder__write_buf(git_str *buf, git_packbuilder *pb);
+int git_packbuilder__prepare(git_packbuilder *pb);
+
-#endif /* INCLUDE_pack_objects_h__ */
+#endif