diff --git a/CHANGELOG b/CHANGELOG
index 2f552a441cb84a71215605b230662c286233fe3e..956df22c2fdf39b63925f501c4d3d98eb1018a4d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -45,6 +45,7 @@ v 7.14.0 (unreleased)
   - Remove comments and email addresses when publicly exposing ssh keys (Zeger-Jan van de Weg)
   - Improve MR merge widget text and UI consistency.
   - Improve text in MR "How To Merge" modal.
+  - Cache all events
 
 v 7.13.3
   - Fix bug causing Bitbucket importer to crash when OAuth application had been removed.
diff --git a/app/assets/images/msapplication-tile.png b/app/assets/images/msapplication-tile.png
index f8c5c8b28b4f77eca529d26478d7e1d64f5521c5..58bbf2b20cb2b925f96d2031d7d7875bac9b4344 100644
Binary files a/app/assets/images/msapplication-tile.png and b/app/assets/images/msapplication-tile.png differ
diff --git a/app/assets/stylesheets/pages/merge_requests.scss b/app/assets/stylesheets/pages/merge_requests.scss
index 5922ac95a48aca4f5e32e623d04d040650705c9e..30bbec7b795b53ccf7fe56de8ac5737085ce48bf 100644
--- a/app/assets/stylesheets/pages/merge_requests.scss
+++ b/app/assets/stylesheets/pages/merge_requests.scss
@@ -91,8 +91,6 @@
 
 @media(min-width: $screen-sm-max) {
   .merge-request .merge-request-tabs{
-    margin: 20px 0;
-
     li {
       a {
         padding: 15px 40px;
@@ -102,6 +100,11 @@
   }
 }
 
+.merge-request .merge-request-tabs{
+  margin-top: 30px;
+  margin-bottom: 20px;
+}
+
 .mr_source_commit,
 .mr_target_commit {
   .commit {
diff --git a/app/assets/stylesheets/pages/tree.scss b/app/assets/stylesheets/pages/tree.scss
index 642bcd943aa1e7eeccd949057ed6e716322bcbd0..34ee4d7b31e6a5cb40029dc6faa9a09f32a051d2 100644
--- a/app/assets/stylesheets/pages/tree.scss
+++ b/app/assets/stylesheets/pages/tree.scss
@@ -60,7 +60,11 @@
   }
 
   .tree_author {
-    padding-left: 8px;
+    padding-right: 8px;
+
+    .commit-author-name {
+      color: gray;
+    }
   }
 
   .tree_commit {
diff --git a/app/views/abuse_reports/new.html.haml b/app/views/abuse_reports/new.html.haml
index a3b34345a3cd59aaffe49f7c20504b781eb54b34..cffd7684008cfcd11050d0c6440cd4af148c19f9 100644
--- a/app/views/abuse_reports/new.html.haml
+++ b/app/views/abuse_reports/new.html.haml
@@ -1,6 +1,6 @@
 - page_title "Report abuse"
 %h3.page-title Report abuse
-%p Please use this form to report users who create spam issues or comments or who otherwise behave inappropriately.
+%p Please use this form to report users who create spam issues, comments or behave inappropriately.
 %hr
 = form_for @abuse_report, html: { class: 'form-horizontal'} do |f|
   = f.hidden_field :user_id
diff --git a/app/views/events/_event.html.haml b/app/views/events/_event.html.haml
index 5ab5ffc238c83d939c54986567978937bb0bd995..0377760a9b8e80ca167b046aa3d117da7128ae44 100644
--- a/app/views/events/_event.html.haml
+++ b/app/views/events/_event.html.haml
@@ -3,13 +3,11 @@
     .event-item-timestamp
       #{time_ago_with_tooltip(event.created_at)}
 
-    - if event.created_project?
-      = cache [event, current_user] do
-        = image_tag avatar_icon(event.author_email, 24), class: "avatar s24", alt:''
-        = render "events/event/created_project", event: event
-    - else
+    = cache event, "v1" do
       = image_tag avatar_icon(event.author_email, 24), class: "avatar s24", alt:''
-      - if event.push?
+      - if event.created_project?
+        = render "events/event/created_project", event: event
+      - elsif event.push?
         = render "events/event/push", event: event
       - elsif event.commented?
         = render "events/event/note", event: event
diff --git a/app/views/events/event/_created_project.html.haml b/app/views/events/event/_created_project.html.haml
index c2577a249824d165272c23eb4d9d3ccf891c89f1..8cf36c711b4305e9ab7ad7e054eec2d447c5b081 100644
--- a/app/views/events/event/_created_project.html.haml
+++ b/app/views/events/event/_created_project.html.haml
@@ -8,8 +8,8 @@
   - else
     = event.project_name
 
-- if current_user == event.author && !event.project.private? && twitter_sharing_enabled?
-  .event-body
+- if !event.project.private? && twitter_sharing_enabled?
+  .event-body{"data-user-is" => event.author_id}
     .event-note
       .md
         %p
diff --git a/app/views/events/event/_push.html.haml b/app/views/events/event/_push.html.haml
index 34a7c00dc4334b301e27b999b4614fbb3e2268bd..8bed5cdb9ccf60fbf73b5c604a3ed61be8965e93 100644
--- a/app/views/events/event/_push.html.haml
+++ b/app/views/events/event/_push.html.haml
@@ -17,7 +17,7 @@
       - few_commits.each do |commit|
         = render "events/commit", commit: commit, project: project
 
-      - create_mr = current_user == event.author && event.new_ref? && create_mr_button?(event.project.default_branch, event.ref_name, event.project)
+      - create_mr = event.new_ref? && create_mr_button?(event.project.default_branch, event.ref_name, event.project)
       - if event.commits_count > 1
         %li.commits-stat
           - if event.commits_count > 2
@@ -34,10 +34,11 @@
             Compare #{from_label}...#{truncate_sha(event.commit_to)}
 
           - if create_mr
-            or
-            = link_to create_mr_path(event.project.default_branch, event.ref_name, event.project) do
-              create a merge request
+            %span{"data-user-is" => event.author_id, "data-display" => "inline"}
+              or
+              = link_to create_mr_path(event.project.default_branch, event.ref_name, event.project) do
+                create a merge request
       - elsif create_mr
-        %li.commits-stat
+        %li.commits-stat{"data-user-is" => event.author_id}
           = link_to create_mr_path(event.project.default_branch, event.ref_name, event.project) do
             Create Merge Request
diff --git a/app/views/layouts/_head.html.haml b/app/views/layouts/_head.html.haml
index 54cddc30b7445595922e05f4ecf86640a049f0f4..397649dacf8b70e694455a5e4bc139fe00736842 100644
--- a/app/views/layouts/_head.html.haml
+++ b/app/views/layouts/_head.html.haml
@@ -27,7 +27,7 @@
   = favicon_link_tag 'touch-icon-ipad-retina.png',   rel: 'apple-touch-icon', sizes: '152x152'
 
   -# Windows 8 pinned site tile
-  %meta{name: 'msapplication-TileImage', content: image_url('msapplication-tile.png')}
+  %meta{name: 'msapplication-TileImage', content: image_path('msapplication-tile.png')}
   %meta{name: 'msapplication-TileColor', content: '#30353E'}
 
   = yield :meta_tags
@@ -35,3 +35,5 @@
   = render 'layouts/google_analytics' if extra_config.has_key?('google_analytics_id')
   = render 'layouts/piwik' if extra_config.has_key?('piwik_url') && extra_config.has_key?('piwik_site_id')
   = render 'layouts/bootlint' if Rails.env.development?
+
+  = render 'layouts/user_styles'
diff --git a/app/views/layouts/_user_styles.html.haml b/app/views/layouts/_user_styles.html.haml
new file mode 100644
index 0000000000000000000000000000000000000000..b76b3cb5510f7f6453961eaefe52847c15231270
--- /dev/null
+++ b/app/views/layouts/_user_styles.html.haml
@@ -0,0 +1,24 @@
+:css
+  [data-user-is] {
+    display: none !important;
+  }
+
+  [data-user-is="#{current_user.try(:id)}"] {
+    display: block !important;
+  }
+
+  [data-user-is="#{current_user.try(:id)}"][data-display="inline"] {
+    display: inline !important;
+  }
+
+  [data-user-is-not] {
+    display: block !important;
+  }
+
+  [data-user-is-not][data-display="inline"] {
+    display: inline !important;
+  }
+
+  [data-user-is-not="#{current_user.try(:id)}"] {
+    display: none !important;
+  }
diff --git a/app/views/projects/tree/_tree_commit_column.html.haml b/app/views/projects/tree/_tree_commit_column.html.haml
index 86a807030724cf3bf62363d5659ade59e4f86770..50521264a611c386a9813fb6767d9dca1b4e7f54 100644
--- a/app/views/projects/tree/_tree_commit_column.html.haml
+++ b/app/views/projects/tree/_tree_commit_column.html.haml
@@ -1,6 +1,3 @@
 %span.str-truncated
+  %span.tree_author= commit_author_link(commit, avatar: true, size: 16)
   = link_to_gfm commit.title, namespace_project_commit_path(@project.namespace, @project, commit.id), class: "tree-commit-link"
-  %span.tree_author
-    [
-    commit_author_link(commit, avatar: false)
-    ]