summaryrefslogtreecommitdiff
path: root/interdiff.c
diff options
context:
space:
mode:
authorEric Sunshine <sunshine@sunshineco.com>2018-07-22 09:57:05 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-07-23 19:50:06 (GMT)
commit126facf8219177bc265be725a8579c86ebdf99a5 (patch)
tree951a68d3b89e0123c1ec0e75de85579a2609dce2 /interdiff.c
parentfa5b7ea670f4c5ee377e7fce799300829eabb291 (diff)
downloadgit-126facf8219177bc265be725a8579c86ebdf99a5.zip
git-126facf8219177bc265be725a8579c86ebdf99a5.tar.gz
git-126facf8219177bc265be725a8579c86ebdf99a5.tar.bz2
format-patch: add --interdiff option to embed diff in cover letter
When submitting a revised version of a patch series, it can be helpful (to reviewers) to include a summary of changes since the previous attempt in the form of an interdiff, however, doing so involves manually copy/pasting the diff into the cover letter. Add an --interdiff option to automate this process. The argument to --interdiff specifies the tip of the previous attempt against which to generate the interdiff. For example: git format-patch --cover-letter --interdiff=v1 -3 v2 The previous attempt and the patch series being formatted must share a common base. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'interdiff.c')
-rw-r--r--interdiff.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/interdiff.c b/interdiff.c
new file mode 100644
index 0000000..d0fac10
--- /dev/null
+++ b/interdiff.c
@@ -0,0 +1,17 @@
+#include "cache.h"
+#include "commit.h"
+#include "revision.h"
+#include "interdiff.h"
+
+void show_interdiff(struct rev_info *rev)
+{
+ struct diff_options opts;
+
+ memcpy(&opts, &rev->diffopt, sizeof(opts));
+ opts.output_format = DIFF_FORMAT_PATCH;
+ diff_setup_done(&opts);
+
+ diff_tree_oid(rev->idiff_oid1, rev->idiff_oid2, "", &opts);
+ diffcore_std(&opts);
+ diff_flush(&opts);
+}