Now Gitalist::Git::Object::Commit::diff supports returning something
useful for merge commits. It now shows the difference between the two
parents of the commit, not sure if it covers octopus merges. Also gets
you something meaningful in the /<repo>/<sha1>/diff view finally.
( $filename ? ('--', $filename) : () ),
);
+ # If we're not comparing against something and we have multiple
+ # parents then it's a merge commit so show what was merged.
+ my $sha1 = $parent eq '-c' && @{[$self->parents]} > 1
+ ? sprintf("%s^1..%s^2", ($self->sha1) x 2)
+ : $self->sha1;
+
my @out = $self->_raw_diff(
( $patch ? '--patch-with-raw' : () ),
( $parent ? $parent : () ),
- $self->sha1, @etc,
+ $sha1, @etc,
);
# XXX Yes, there is much wrongness having _parse_diff_tree be destructive.