#define USE_THE_REPOSITORY_VARIABLE
#include "git-compat-util.h"
#include "object.h"
#include "commit.h"
#include "gettext.h"
#include "hex.h"
#include "tag.h"
#include "tree.h"
#include "pack.h"
#include "tree-walk.h"
#include "diff.h"
#include "progress.h"
#include "refs.h"
#include "khash.h"
#include "pack-bitmap.h"
#include "pack-objects.h"
#include "delta-islands.h"
#include "oid-array.h"
#include "config.h"
KHASH_INIT(…)
static kh_oid_map_t *island_marks;
static unsigned island_counter;
static unsigned island_counter_core;
struct remote_island { … };
struct island_bitmap { … };
static uint32_t island_bitmap_size;
static struct island_bitmap *island_bitmap_new(const struct island_bitmap *old)
{ … }
static void island_bitmap_or(struct island_bitmap *a, const struct island_bitmap *b)
{ … }
static int island_bitmap_is_subset(struct island_bitmap *self,
struct island_bitmap *super)
{ … }
#define ISLAND_BITMAP_BLOCK(x) …
#define ISLAND_BITMAP_MASK(x) …
static void island_bitmap_set(struct island_bitmap *self, uint32_t i)
{ … }
static int island_bitmap_get(struct island_bitmap *self, uint32_t i)
{ … }
int in_same_island(const struct object_id *trg_oid, const struct object_id *src_oid)
{ … }
int island_delta_cmp(const struct object_id *a, const struct object_id *b)
{ … }
static struct island_bitmap *create_or_get_island_marks(struct object *obj)
{ … }
static void set_island_marks(struct object *obj, struct island_bitmap *marks)
{ … }
static void mark_remote_island_1(struct repository *r,
struct remote_island *rl,
int is_core_island)
{ … }
struct tree_islands_todo { … };
static int tree_depth_compare(const void *a, const void *b)
{ … }
void resolve_tree_islands(struct repository *r,
int progress,
struct packing_data *to_pack)
{ … }
struct island_load_data { … };
static char *core_island_name;
static void free_config_regexes(struct island_load_data *ild)
{ … }
static void free_remote_islands(kh_str_t *remote_islands)
{ … }
static int island_config_callback(const char *k, const char *v,
const struct config_context *ctx UNUSED,
void *cb)
{ … }
static void add_ref_to_island(kh_str_t *remote_islands, const char *island_name,
const struct object_id *oid)
{ … }
static int find_island_for_ref(const char *refname, const char *referent UNUSED, const struct object_id *oid,
int flags UNUSED, void *cb)
{ … }
static struct remote_island *get_core_island(kh_str_t *remote_islands)
{ … }
static void deduplicate_islands(kh_str_t *remote_islands, struct repository *r)
{ … }
void load_delta_islands(struct repository *r, int progress)
{ … }
void propagate_island_marks(struct commit *commit)
{ … }
void free_island_marks(void)
{ … }
int compute_pack_layers(struct packing_data *to_pack)
{ … }