Merge branch 'eb/hash-transition'
Work to support a repository that work with both SHA-1 and SHA-256 hash algorithms has started. * eb/hash-transition: (30 commits) t1016-compatObjectFormat: add tests to verify the conversion between objects t1006: test oid compatibility with cat-file t1006: rename sha1 to oid test-lib: compute the compatibility hash so tests may use it builtin/ls-tree: let the oid determine the output algorithm object-file: handle compat objects in check_object_signature tree-walk: init_tree_desc take an oid to get the hash algorithm builtin/cat-file: let the oid determine the output algorithm rev-parse: add an --output-object-format parameter repository: implement extensions.compatObjectFormat object-file: update object_info_extended to reencode objects object-file-convert: convert commits that embed signed tags object-file-convert: convert commit objects when writing object-file-convert: don't leak when converting tag objects object-file-convert: convert tag objects when writing object-file-convert: add a function to convert trees between algorithms object: factor out parse_mode out of fast-import and tree-walk into in object.h cache: add a function to read an OID of a specific algorithm tag: sign both hashes commit: export add_header_signature to support handling signatures on tags ...
This commit is contained in:
@ -1236,20 +1236,6 @@ static void *gfi_unpack_entry(
|
||||
return unpack_entry(the_repository, p, oe->idx.offset, &type, sizep);
|
||||
}
|
||||
|
||||
static const char *get_mode(const char *str, uint16_t *modep)
|
||||
{
|
||||
unsigned char c;
|
||||
uint16_t mode = 0;
|
||||
|
||||
while ((c = *str++) != ' ') {
|
||||
if (c < '0' || c > '7')
|
||||
return NULL;
|
||||
mode = (mode << 3) + (c - '0');
|
||||
}
|
||||
*modep = mode;
|
||||
return str;
|
||||
}
|
||||
|
||||
static void load_tree(struct tree_entry *root)
|
||||
{
|
||||
struct object_id *oid = &root->versions[1].oid;
|
||||
@ -1287,7 +1273,7 @@ static void load_tree(struct tree_entry *root)
|
||||
t->entries[t->entry_count++] = e;
|
||||
|
||||
e->tree = NULL;
|
||||
c = get_mode(c, &e->versions[1].mode);
|
||||
c = parse_mode(c, &e->versions[1].mode);
|
||||
if (!c)
|
||||
die("Corrupt mode in %s", oid_to_hex(oid));
|
||||
e->versions[0].mode = e->versions[1].mode;
|
||||
@ -2280,7 +2266,7 @@ static void file_change_m(const char *p, struct branch *b)
|
||||
struct object_id oid;
|
||||
uint16_t mode, inline_data = 0;
|
||||
|
||||
p = get_mode(p, &mode);
|
||||
p = parse_mode(p, &mode);
|
||||
if (!p)
|
||||
die("Corrupt mode: %s", command_buf.buf);
|
||||
switch (mode) {
|
||||
|
Reference in New Issue
Block a user