diff --git a/src/Vervis/Handler/Repo.hs b/src/Vervis/Handler/Repo.hs
index a9b16fc..235ebec 100644
--- a/src/Vervis/Handler/Repo.hs
+++ b/src/Vervis/Handler/Repo.hs
@@ -498,13 +498,28 @@ postPostReceiveR = do
     summary <- do
         let mbranch = H.pushBranch push
             total = pushCommitsTotal pushAP
+            lasts = pushCommitsLast pushAP
+            rest firsts = total - length firsts - length lasts
+            hashText (Hash b) = decodeUtf8 b
+            commitW c =
+                [hamlet|
+                    <a href=@{RepoPatchR shr rp $ hashText $ commitHash c}>
+                      #{commitTitle c}
+                |]
         withUrlRenderer
             [hamlet|
                 <p>
-                    <a href=@{SharerR shrUser}>#{shr2text shrUser}
-                    \ pushed #{total} #
-                    \ #{commitsText mbranch total} to repo #
-                    <a href=@{RepoR shr rp}>#{rp2text rp}</a>^{branchText shr rp mbranch}.
+                  <a href=@{SharerR shrUser}>#{shr2text shrUser}
+                  \ pushed #{total} #
+                  \ #{commitsText mbranch total} to repo #
+                  <a href=@{RepoR shr rp}>#{rp2text rp}</a>^{branchText shr rp mbranch}:
+                <ul>
+                  $maybe firsts <- pushCommitsFirst pushAP
+                    $forall c <- firsts
+                      <li>^{commitW c}
+                    <li>#{rest firsts}
+                  $forall c <- lasts
+                    <li>^{commitW c}
             |]
     eid <- pushCommitsC user summary pushAP shr rp
     case eid of