$num ||= 1;
my @raw_lines = run_or_die('git', 'log', "--max-count=$num",
- '--pretty=raw', '--raw', '--abbrev=40', '--always', '-m',
+ '--pretty=raw', '--raw', '--abbrev=40', '--always', '-c',
'-r', $sha1, '--', '.');
my ($prefix) = run_or_die('git', 'rev-parse', '--show-prefix');
when => $when,
message => [@messages],
pages => [@pages],
- };
+ } if @pages;
last if @rets >= $num;
}
stay the same for the duration of the function.
* Avoid using commands like git-diff and instead use "git diff".
In some configurations, only the main git command is in the path.
+ * Improve the RecentChanges display for git merges, by passing -c instead
+ of -m to git-log, and by skipping display of commits that change no
+ pages.
- -- Joey Hess <joeyh@debian.org> Wed, 31 Oct 2007 17:34:59 -0400
+ -- Joey Hess <joeyh@debian.org> Wed, 31 Oct 2007 18:30:54 -0400
ikiwiki (2.11) unstable; urgency=low
might be what gitweb calls a "simple merge", that is I think, just a
fast-forward. Or it could be a merge that includes manual conflict resolution,
and should be shown in recentchanges.
+
+Seems that the problem is that it's calling git-log with the -m option,
+which makes merges be listed with the diff from the perspective of each
+parent. I think it would be better to not use that (or possibly to use the
+-c option instead?). The -m makes it show the merge from the POV of
+each of the parents. If the -m is left off, none of the changes in the
+merge are shown, even if it includes changes not in any of the parents
+(manual conflict resolution). With -c, it seems to show only the unique
+changes introduced by the merge.
+
+[[done]], using -c, hope that was the right choice --[[Joey]]