summaryrefslogtreecommitdiff
path: root/combine-diff.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-09-09 14:33:16 -0700
committerJunio C Hamano <gitster@pobox.com>2013-09-09 14:33:16 -0700
commit4ab4a6dfb414230bb3e13ba65a1aa2606c6102f3 (patch)
treeb82e5312a7b54dcd85139b243ff688b7da737ab4 /combine-diff.c
parent24703ead4b9391cbe71ce9978cbffdd6c3ecbaec (diff)
parent838f9a15667cfefa9e645c26627ce81ce7599915 (diff)
downloadgit-4ab4a6dfb414230bb3e13ba65a1aa2606c6102f3.tar.gz
Merge branch 'tr/log-full-diff-keep-true-parents'
Output from "git log --full-diff -- <pathspec>" looked strange, because comparison was done with the previous ancestor that touched the specified <pathspec>, causing the patches for paths outside the pathspec to show more than the single commit has changed. Tweak "git reflog -p" for the same reason using the same mechanism. * tr/log-full-diff-keep-true-parents: log: use true parents for diff when walking reflogs log: use true parents for diff even when rewriting
Diffstat (limited to 'combine-diff.c')
-rw-r--r--combine-diff.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/combine-diff.c b/combine-diff.c
index 88525b37cf..4fc16ad4f3 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -10,6 +10,7 @@
#include "refs.h"
#include "userdiff.h"
#include "sha1-array.h"
+#include "revision.h"
static struct combine_diff_path *intersect_paths(struct combine_diff_path *curr, int n, int num_parent)
{
@@ -1383,7 +1384,7 @@ void diff_tree_combined(const unsigned char *sha1,
void diff_tree_combined_merge(const struct commit *commit, int dense,
struct rev_info *rev)
{
- struct commit_list *parent = commit->parents;
+ struct commit_list *parent = get_saved_parents(rev, commit);
struct sha1_array parents = SHA1_ARRAY_INIT;
while (parent) {