Currently, egencache --update-changelogs uses this command: git diff-tree --name-status --no-renames '--format=%ct %cN <%cE>%n%B' --root --relative=${CATEGORY}/${PN} -m -r ${COMMIT_HASH} -- . It has been pointed out by Doug Freed that `git log -m --first-parent` will be more optimal for rendering merge commits. This option combination is described as follows in the git log man page: This flag makes the merge commits show the full diff like regular commits; for each merge parent, a separate log entry and diff is generated. An exception is that only diff against the first parent is shown when --first-parent option is given; in that case, the output represents the changes the merge brought into the then-current branch. The following git log command appears to serve as a suitable replacement for the existing git diff-tree command: git log --name-status --no-renames '--format=%ct %cN <%cE>%n%B' --root --relative=${CATEGORY}/${PN} -n1 -m --first-parent -r ${COMMIT_HASH} -- .
(In reply to Zac Medico from comment #0) > git log --name-status --no-renames '--format=%ct %cN <%cE>%n%B' --root > --relative=${CATEGORY}/${PN} -n1 -m --first-parent -r ${COMMIT_HASH} -- . Seems that git diff-tree also accepts the -m --first-parent options. I guess it's preferable to use git-diff-tree, since it's not in the "main porcelain commands" section of the git man page.
There's a patch in the following branch: https://github.com/zmedico/portage/tree/bug_579402 I've posted it for review here: https://archives.gentoo.org/gentoo-portage-dev/message/2e70000ce0f3c4730385cb5d7d7469f9
@dwfree: Patch looks good? Brian wanted to make sure you review it before we merge it.