#define USE_THE_REPOSITORY_VARIABLE
#include "git-compat-util.h"
#include "environment.h"
#include "gettext.h"
#include "hex.h"
#include "object-store-ll.h"
#include "commit.h"
#include "diff.h"
#include "revision.h"
#include "progress.h"
#include "pack.h"
#include "pack-bitmap.h"
#include "hash-lookup.h"
#include "pack-objects.h"
#include "path.h"
#include "commit-reach.h"
#include "prio-queue.h"
#include "trace2.h"
#include "tree.h"
#include "tree-walk.h"
#include "pseudo-merge.h"
#include "oid-array.h"
#include "config.h"
#include "alloc.h"
#include "refs.h"
#include "strmap.h"
struct bitmapped_commit { … };
static inline int bitmap_writer_nr_selected_commits(struct bitmap_writer *writer)
{ … }
void bitmap_writer_init(struct bitmap_writer *writer, struct repository *r,
struct packing_data *pdata)
{ … }
static void free_pseudo_merge_commit_idx(struct pseudo_merge_commit_idx *idx)
{ … }
static void pseudo_merge_group_release_cb(void *payload, const char *name UNUSED)
{ … }
void bitmap_writer_free(struct bitmap_writer *writer)
{ … }
void bitmap_writer_show_progress(struct bitmap_writer *writer, int show)
{ … }
void bitmap_writer_build_type_index(struct bitmap_writer *writer,
struct pack_idx_entry **index)
{ … }
int bitmap_writer_has_bitmapped_object_id(struct bitmap_writer *writer,
const struct object_id *oid)
{ … }
void bitmap_writer_push_commit(struct bitmap_writer *writer,
struct commit *commit, unsigned pseudo_merge)
{ … }
static uint32_t find_object_pos(struct bitmap_writer *writer,
const struct object_id *oid, int *found)
{ … }
static void compute_xor_offsets(struct bitmap_writer *writer)
{ … }
struct bb_commit { … };
static void clear_bb_commit(struct bb_commit *commit)
{ … }
define_commit_slab(bb_data, struct bb_commit);
struct bitmap_builder { … };
static void bitmap_builder_init(struct bitmap_builder *bb,
struct bitmap_writer *writer,
struct bitmap_index *old_bitmap)
{ … }
static void bitmap_builder_clear(struct bitmap_builder *bb)
{ … }
static int fill_bitmap_tree(struct bitmap_writer *writer,
struct bitmap *bitmap,
struct tree *tree)
{ … }
static int reused_bitmaps_nr;
static int reused_pseudo_merge_bitmaps_nr;
static int fill_bitmap_commit(struct bitmap_writer *writer,
struct bb_commit *ent,
struct commit *commit,
struct prio_queue *queue,
struct prio_queue *tree_queue,
struct bitmap_index *old_bitmap,
const uint32_t *mapping)
{ … }
static void store_selected(struct bitmap_writer *writer,
struct bb_commit *ent, struct commit *commit)
{ … }
int bitmap_writer_build(struct bitmap_writer *writer)
{ … }
static inline unsigned int next_commit_index(unsigned int idx)
{ … }
static int date_compare(const void *_a, const void *_b)
{ … }
void bitmap_writer_select_commits(struct bitmap_writer *writer,
struct commit **indexed_commits,
unsigned int indexed_commits_nr)
{ … }
static int hashwrite_ewah_helper(void *f, const void *buf, size_t len)
{ … }
static inline void dump_bitmap(struct hashfile *f, struct ewah_bitmap *bitmap)
{ … }
static const struct object_id *oid_access(size_t pos, const void *table)
{ … }
static void write_selected_commits_v1(struct bitmap_writer *writer,
struct hashfile *f, off_t *offsets)
{ … }
static void write_pseudo_merges(struct bitmap_writer *writer,
struct hashfile *f)
{ … }
static int table_cmp(const void *_va, const void *_vb, void *_data)
{ … }
static void write_lookup_table(struct bitmap_writer *writer, struct hashfile *f,
off_t *offsets)
{ … }
static void write_hash_cache(struct hashfile *f,
struct pack_idx_entry **index,
uint32_t index_nr)
{ … }
void bitmap_writer_set_checksum(struct bitmap_writer *writer,
const unsigned char *sha1)
{ … }
void bitmap_writer_finish(struct bitmap_writer *writer,
struct pack_idx_entry **index,
const char *filename,
uint16_t options)
{ … }