git: update to v2.10.0

Upstream continues to replace unsigned char *sha1 with struct
object_id old_oid. This makes the required changes.

The git lib has its own main function now. Rename our main function
to cmd_main, it is called from main then.
This commit is contained in:
Christian Hesse
2016-09-04 12:38:18 +02:00
والد ff9893ac81
کامیت 11695a58fd
9فایلهای تغییر یافته به همراه63 افزوده شده و 63 حذف شده

مشاهده پرونده

@ -263,15 +263,15 @@ void cgit_diff_tree_cb(struct diff_queue_struct *q,
}
}
static int load_mmfile(mmfile_t *file, const unsigned char *sha1)
static int load_mmfile(mmfile_t *file, const struct object_id *oid)
{
enum object_type type;
if (is_null_sha1(sha1)) {
if (is_null_oid(oid)) {
file->ptr = (char *)"";
file->size = 0;
} else {
file->ptr = read_sha1_file(sha1, &type,
file->ptr = read_sha1_file(oid->hash, &type,
(unsigned long *)&file->size);
}
return 1;
@ -322,8 +322,8 @@ static int filediff_cb(void *priv, mmbuffer_t *mb, int nbuf)
return 0;
}
int cgit_diff_files(const unsigned char *old_sha1,
const unsigned char *new_sha1, unsigned long *old_size,
int cgit_diff_files(const struct object_id *old_oid,
const struct object_id *new_oid, unsigned long *old_size,
unsigned long *new_size, int *binary, int context,
int ignorews, linediff_fn fn)
{
@ -332,7 +332,7 @@ int cgit_diff_files(const unsigned char *old_sha1,
xdemitconf_t emit_params;
xdemitcb_t emit_cb;
if (!load_mmfile(&file1, old_sha1) || !load_mmfile(&file2, new_sha1))
if (!load_mmfile(&file1, old_oid) || !load_mmfile(&file2, new_oid))
return 1;
*old_size = file1.size;
@ -366,8 +366,8 @@ int cgit_diff_files(const unsigned char *old_sha1,
return 0;
}
void cgit_diff_tree(const unsigned char *old_sha1,
const unsigned char *new_sha1,
void cgit_diff_tree(const struct object_id *old_oid,
const struct object_id *new_oid,
filepair_fn fn, const char *prefix, int ignorews)
{
struct diff_options opt;
@ -391,21 +391,21 @@ void cgit_diff_tree(const unsigned char *old_sha1,
}
diff_setup_done(&opt);
if (old_sha1 && !is_null_sha1(old_sha1))
diff_tree_sha1(old_sha1, new_sha1, "", &opt);
if (old_oid && !is_null_oid(old_oid))
diff_tree_sha1(old_oid->hash, new_oid->hash, "", &opt);
else
diff_root_tree_sha1(new_sha1, "", &opt);
diff_root_tree_sha1(new_oid->hash, "", &opt);
diffcore_std(&opt);
diff_flush(&opt);
}
void cgit_diff_commit(struct commit *commit, filepair_fn fn, const char *prefix)
{
unsigned char *old_sha1 = NULL;
const struct object_id *old_oid = NULL;
if (commit->parents)
old_sha1 = commit->parents->item->object.oid.hash;
cgit_diff_tree(old_sha1, commit->object.oid.hash, fn, prefix,
old_oid = &commit->parents->item->object.oid;
cgit_diff_tree(old_oid, &commit->object.oid, fn, prefix,
ctx.qry.ignorews);
}