diff --git a/src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php b/src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php
--- a/src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php
+++ b/src/applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php
@@ -26,20 +26,45 @@
 
     $viewer = $this->getViewer();
 
-    $author_phid = $commit->getAuthorPHID();
-    if ($author_phid) {
-      $author = $viewer->renderHandle($author_phid);
-    } else {
-      $commit_data = $commit->loadCommitData();
-      $author = phutil_tag('em', array(), $commit_data->getAuthorName());
+    $commit = id(new DiffusionCommitQuery())
+      ->setViewer($viewer)
+      ->needIdentities(true)
+      ->needCommitData(true)
+      ->withPHIDs(array($commit->getPHID()))
+      ->executeOne();
+    if (!$commit) {
+      return;
     }
 
+    $author_phid = $commit->getAuthorDisplayPHID();
+    $committer_phid = $commit->getCommitterDisplayPHID();
+    $repository_phid = $commit->getRepository()->getPHID();
+
+    $phids = array();
+    $phids[] = $author_phid;
+    $phids[] = $committer_phid;
+    $phids[] = $repository_phid;
+
+    $handles = $viewer->loadHandles($phids);
+
     $hovercard->setTitle($handle->getName());
     $hovercard->setDetail($commit->getSummary());
 
-    $hovercard->addField(pht('Author'), $author);
-    $hovercard->addField(pht('Date'),
-      phabricator_date($commit->getEpoch(), $viewer));
+    $repository = $handles[$repository_phid]->renderLink();
+    $hovercard->addField(pht('Repository'), $repository);
+
+    $author = $handles[$author_phid]->renderLink();
+    if ($author_phid) {
+      $hovercard->addField(pht('Author'), $author);
+    }
+
+    if ($committer_phid && ($committer_phid !== $author_phid)) {
+      $committer = $handles[$committer_phid]->renderLink();
+      $hovercard->addField(pht('Committer'), $committer);
+    }
+
+    $date = phabricator_date($commit->getEpoch(), $viewer);
+    $hovercard->addField(pht('Date'), $date);
 
     if (!$commit->isAuditStatusNoAudit()) {
       $status = $commit->getAuditStatusObject();