diff options
Diffstat (limited to 'devel/git-cinnabar/files/patch-git-2.40')
-rw-r--r-- | devel/git-cinnabar/files/patch-git-2.40 | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/devel/git-cinnabar/files/patch-git-2.40 b/devel/git-cinnabar/files/patch-git-2.40 new file mode 100644 index 000000000000..875927c5f745 --- /dev/null +++ b/devel/git-cinnabar/files/patch-git-2.40 @@ -0,0 +1,124 @@ +https://github.com/glandium/git-cinnabar/commit/6c77d861b70a + +--- helper/cinnabar-fast-import.c.orig 2022-10-28 23:43:03 UTC ++++ helper/cinnabar-fast-import.c +@@ -422,12 +422,17 @@ static void handle_changeset_conflict(struct hg_object + ensure_notes(&git2hg); + while ((note = get_note(&git2hg, git_id))) { + struct hg_object_id oid; ++ struct object_info oi = OBJECT_INFO_INIT; + enum object_type type; + unsigned long len; +- char *content = read_object_file_extended( +- the_repository, note, &type, &len, 0); +- if (len < 50 || !starts_with(content, "changeset ") || +- get_sha1_hex(&content[10], oid.hash)) ++ char *content; ++ oi.typep = &type; ++ oi.sizep = &len; ++ oi.contentp = (void **) &content; ++ if ((oid_object_info_extended( ++ the_repository, note, &oi, OBJECT_INFO_DIE_IF_CORRUPT) == 0) && ++ (len < 50 || !starts_with(content, "changeset ") || ++ get_sha1_hex(&content[10], oid.hash))) + die("Invalid git2hg note for %s", oid_to_hex(git_id)); + + free(content); +@@ -437,10 +442,12 @@ static void handle_changeset_conflict(struct hg_object + break; + + if (!buf.len) { +- content = read_object_file_extended( +- the_repository, git_id, &type, &len, 0); +- strbuf_add(&buf, content, len); +- free(content); ++ if (oid_object_info_extended( ++ the_repository, git_id, &oi, ++ OBJECT_INFO_DIE_IF_CORRUPT) == 0) { ++ strbuf_add(&buf, content, len); ++ free(content); ++ } + } + + strbuf_addch(&buf, '\0'); +--- helper/cinnabar-helper.c.orig 2022-10-28 23:43:03 UTC ++++ helper/cinnabar-helper.c +@@ -1554,11 +1554,17 @@ static void upgrade_files(const struct old_manifest_tr + if (note && oidcmp(note, &entry.other_oid)) { + struct hg_file file; + struct strbuf buf = STRBUF_INIT; ++ struct object_info oi = OBJECT_INFO_INIT; + unsigned long len; + enum object_type t; + char *content; +- content = read_object_file_extended( +- the_repository, note, &t, &len, 0); ++ oi.typep = &t; ++ oi.sizep = &len; ++ oi.contentp = (void **) &content; ++ if (oid_object_info_extended( ++ the_repository, note, &oi, ++ OBJECT_INFO_DIE_IF_CORRUPT) != 0) ++ goto corrupted; + strbuf_attach(&buf, content, len, len); + hg_file_init(&file); + hg_file_from_memory(&file, &hg_oid, &buf); +--- helper/hg-data.c.orig 2022-10-28 23:43:03 UTC ++++ helper/hg-data.c +@@ -33,11 +33,16 @@ void hg_file_load(struct hg_file *result, const struct + void hg_file_load(struct hg_file *result, const struct hg_object_id *oid) + { + const struct object_id *note; ++ struct object_info oi = OBJECT_INFO_INIT; + char *content; + enum object_type type; + unsigned long len; + size_t metadata_len; + ++ oi.typep = &type; ++ oi.sizep = &len; ++ oi.contentp = (void **) &content; ++ + strbuf_release(&result->file); + hg_oidcpy(&result->oid, oid); + +@@ -47,9 +52,9 @@ void hg_file_load(struct hg_file *result, const struct + ensure_notes(&files_meta); + note = get_note_hg(&files_meta, oid); + if (note) { +- content = read_object_file_extended( +- the_repository, note, &type, &len, 0); +- if (!content) ++ if (oid_object_info_extended( ++ the_repository, note, &oi, ++ OBJECT_INFO_DIE_IF_CORRUPT) != 0) + die("Missing data"); + strbuf_add(&result->file, "\1\n", 2); + strbuf_add(&result->file, content, len); +@@ -64,9 +69,9 @@ void hg_file_load(struct hg_file *result, const struct + if (!note) + die("Missing data"); + +- content = read_object_file_extended( +- the_repository, note, &type, &len, 0); +- if (!content) ++ if (oid_object_info_extended( ++ the_repository, note, &oi, ++ OBJECT_INFO_DIE_IF_CORRUPT) != 0) + die("Missing data"); + + strbuf_add(&result->file, content, len); +--- helper/object-file.c.patch.orig 2022-10-28 23:43:03 UTC ++++ helper/object-file.c.patch +@@ -2,9 +2,9 @@ +++ b/object-file.c + index 8be57f48de..52315414f3 100644 + --- a/object-file.c + +++ b/object-file.c +-@@ -34,6 +34,8 @@ +- #include "promisor-remote.h" ++@@ -35,6 +35,8 @@ + #include "submodule.h" ++ #include "fsck.h" + + +#define write_object_file_flags real_write_object_file_flags + + |