From f1b238cb42e9782b939d42a36ba5c2eae0577632 Mon Sep 17 00:00:00 2001 From: epriestley Date: Mon, 2 Feb 2015 14:59:32 -0800 Subject: [PATCH] Probably fix excessive "(authored by X)" attributions Summary: This is a pain to test, but we do a lot of needless "X committed thing (authored by X)" right now. I think that's because we compare two handle links here, and they're never the same, even if they're both links to the same object. Instead, compare the author and committer more carefully. Test Plan: Will do it live. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D11635 --- .../storage/DifferentialTransaction.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/applications/differential/storage/DifferentialTransaction.php b/src/applications/differential/storage/DifferentialTransaction.php index 2e6fc88472..bc2e03592e 100644 --- a/src/applications/differential/storage/DifferentialTransaction.php +++ b/src/applications/differential/storage/DifferentialTransaction.php @@ -380,18 +380,31 @@ final class DifferentialTransaction extends PhabricatorApplicationTransaction { $this->getMetadataValue('commitPHID')); $committer_phid = $this->getMetadataValue('committerPHID'); $author_phid = $this->getMetadataValue('authorPHID'); + if ($this->getHandleIfExists($committer_phid)) { $committer_name = $this->renderHandleLink($committer_phid); } else { $committer_name = $this->getMetadataValue('committerName'); } + if ($this->getHandleIfExists($author_phid)) { $author_name = $this->renderHandleLink($author_phid); } else { $author_name = $this->getMetadataValue('authorName'); } - if ($committer_name && ($committer_name != $author_name)) { + // Check if the committer and author are the same. They're the + // same if both resolved and are the same user, or if neither + // resolved and the text is identical. + if ($committer_phid && $author_phid) { + $same_author = ($committer_phid == $author_phid); + } else if (!$committer_phid && !$author_phid) { + $same_author = ($committer_name == $author_name); + } else { + $same_author = false; + } + + if ($committer_name && !$same_author) { return pht( '%s closed %s by committing %s (authored by %s).', $author_link,