Fredrik Gustafsson <iveqy@xxxxxxxxx> writes: > diff --git a/combine-diff.c b/combine-diff.c > index b11eb71..f7a8978 100644 > --- a/combine-diff.c > +++ b/combine-diff.c > @@ -1074,7 +1074,7 @@ void diff_tree_combined(const unsigned char *sha1, > * when doing combined diff. > */ > int stat_opt = (opt->output_format & > - (DIFF_FORMAT_NUMSTAT|DIFF_FORMAT_DIFFSTAT)); > + (DIFF_FORMAT_NUMSTAT|DIFF_FORMAT_DIFFSTAT|DIFF_FORMAT_CALLBACK)); > if (i == 0 && stat_opt) > diffopts.output_format = stat_opt; > else Sorry, but this is not what I meant. With this change, you are running N (= number of parents) diffs with the end result, but only making a callback while running a diff with the first parent, and not getting anything from comparison with other parents. The existing NUMSTAT/STAT exception is only justified because that is how "diff --stat" shows merges (i.e. showing the extent of damage to the mainline, assuming you are viewing a merge to the mainline from a side branch). What I meant was more along the lines of the following, but I think we would need a new kind of callback that can take N-way parents (which is not depicted here). Let me cook up something and get back to you later tonight. combine-diff.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/combine-diff.c b/combine-diff.c index 655fa89..51ebd31 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -1017,6 +1017,12 @@ void diff_tree_combined(const unsigned char *sha1, num_paths++; } if (num_paths) { + if (opt->output_format & DIFF_FORMAT_CALLBACK) { + for (p = paths; p; p = p->next) { + if (p->len) + ... make callback here ... + } + } if (opt->output_format & (DIFF_FORMAT_RAW | DIFF_FORMAT_NAME | DIFF_FORMAT_NAME_STATUS)) { -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html