Merge branch 'en/remerge-diff'
"git log --remerge-diff" shows the difference from mechanical merge result and the result that is actually recorded in a merge commit. * en/remerge-diff: diff-merges: avoid history simplifications when diffing merges merge-ort: mark conflict/warning messages from inner merges as omittable show, log: include conflict/warning messages in --remerge-diff headers diff: add ability to insert additional headers for paths merge-ort: format messages slightly different for use in headers merge-ort: mark a few more conflict messages as omittable merge-ort: capture and print ll-merge warnings in our preferred fashion ll-merge: make callers responsible for showing warnings log: clean unneeded objects during `log --remerge-diff` show, log: provide a --remerge-diff capability
This commit is contained in:
@ -35,6 +35,7 @@
|
||||
#include "repository.h"
|
||||
#include "commit-reach.h"
|
||||
#include "range-diff.h"
|
||||
#include "tmp-objdir.h"
|
||||
|
||||
#define MAIL_DEFAULT_WRAP 72
|
||||
#define COVER_FROM_AUTO_MAX_SUBJECT_LEN 100
|
||||
@ -422,6 +423,13 @@ static int cmd_log_walk(struct rev_info *rev)
|
||||
int saved_nrl = 0;
|
||||
int saved_dcctc = 0;
|
||||
|
||||
if (rev->remerge_diff) {
|
||||
rev->remerge_objdir = tmp_objdir_create("remerge-diff");
|
||||
if (!rev->remerge_objdir)
|
||||
die(_("unable to create temporary object directory"));
|
||||
tmp_objdir_replace_primary_odb(rev->remerge_objdir, 1);
|
||||
}
|
||||
|
||||
if (rev->early_output)
|
||||
setup_early_output();
|
||||
|
||||
@ -464,6 +472,11 @@ static int cmd_log_walk(struct rev_info *rev)
|
||||
rev->diffopt.no_free = 0;
|
||||
diff_free(&rev->diffopt);
|
||||
|
||||
if (rev->remerge_diff) {
|
||||
tmp_objdir_destroy(rev->remerge_objdir);
|
||||
rev->remerge_objdir = NULL;
|
||||
}
|
||||
|
||||
if (rev->diffopt.output_format & DIFF_FORMAT_CHECKDIFF &&
|
||||
rev->diffopt.flags.check_failed) {
|
||||
return 02;
|
||||
@ -1958,6 +1971,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
||||
die(_("--name-status does not make sense"));
|
||||
if (rev.diffopt.output_format & DIFF_FORMAT_CHECKDIFF)
|
||||
die(_("--check does not make sense"));
|
||||
if (rev.remerge_diff)
|
||||
die(_("--remerge-diff does not make sense"));
|
||||
|
||||
if (!use_patch_format &&
|
||||
(!rev.diffopt.output_format ||
|
||||
|
||||
Reference in New Issue
Block a user