summaryrefslogtreecommitdiff
path: root/pack.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-07-19 09:54:51 -0700
committerJunio C Hamano <gitster@pobox.com>2011-07-19 09:54:51 -0700
commitd907bf8ef327cd47433d4a4bb0a1bb4e96b6e340 (patch)
tree2475a33111f13c32a4e8540fb9d273bee0c5c601 /pack.h
parent54dbc1f9e6451b6673835259ce8aa450489fc420 (diff)
parent3de89c9d4216d0fdc11bd1141c419ac4d0d35fed (diff)
downloadgit-d907bf8ef327cd47433d4a4bb0a1bb4e96b6e340.tar.gz
Merge branch 'jc/index-pack'
* jc/index-pack: verify-pack: use index-pack --verify index-pack: show histogram when emulating "verify-pack -v" index-pack: start learning to emulate "verify-pack -v" index-pack: a miniscule refactor index-pack --verify: read anomalous offsets from v2 idx file write_idx_file: need_large_offset() helper function index-pack: --verify write_idx_file: introduce a struct to hold idx customization options index-pack: group the delta-base array entries also by type Conflicts: builtin/verify-pack.c cache.h sha1_file.c
Diffstat (limited to 'pack.h')
-rw-r--r--pack.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/pack.h b/pack.h
index bb275762b7..722a54e00a 100644
--- a/pack.h
+++ b/pack.h
@@ -34,9 +34,24 @@ struct pack_header {
*/
#define PACK_IDX_SIGNATURE 0xff744f63 /* "\377tOc" */
-/* These may be overridden by command-line parameters */
-extern uint32_t pack_idx_default_version;
-extern uint32_t pack_idx_off32_limit;
+struct pack_idx_option {
+ unsigned flags;
+ /* flag bits */
+#define WRITE_IDX_VERIFY 01
+
+ uint32_t version;
+ uint32_t off32_limit;
+
+ /*
+ * List of offsets that would fit within off32_limit but
+ * need to be written out as 64-bit entity for byte-for-byte
+ * verification.
+ */
+ int anomaly_alloc, anomaly_nr;
+ uint32_t *anomaly;
+};
+
+extern void reset_pack_idx_option(struct pack_idx_option *);
/*
* Packed object index header
@@ -55,7 +70,7 @@ struct pack_idx_entry {
off_t offset;
};
-extern const char *write_idx_file(const char *index_name, struct pack_idx_entry **objects, int nr_objects, unsigned char *sha1);
+extern const char *write_idx_file(const char *index_name, struct pack_idx_entry **objects, int nr_objects, const struct pack_idx_option *, unsigned char *sha1);
extern int check_pack_crc(struct packed_git *p, struct pack_window **w_curs, off_t offset, off_t len, unsigned int nr);
extern int verify_pack_index(struct packed_git *);
extern int verify_pack(struct packed_git *);