diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb
index 8da1af67ee673392c43472c914d63c532bf9db2c..5ccaa5275b749910b6e564f0a2d162ba6bf2259b 100644
--- a/app/services/system_note_service.rb
+++ b/app/services/system_note_service.rb
@@ -21,10 +21,10 @@ module SystemNoteService
     total_count  = new_commits.length + existing_commits.length
     commits_text = "#{total_count} commit".pluralize(total_count)
 
-    body = "[Compare with previous version](#{diff_comparison_url(noteable, project, oldrev)})\n\n"
-    body << "Added #{commits_text}:\n\n"
+    body = "Added #{commits_text}:\n\n"
     body << existing_commit_summary(noteable, existing_commits, oldrev)
     body << new_commit_summary(new_commits).join("\n")
+    body << "\n\n[Compare with previous version](#{diff_comparison_url(noteable, project, oldrev)})"
 
     create_note(noteable: noteable, project: project, author: author, note: body)
   end
@@ -255,8 +255,7 @@ module SystemNoteService
   #
   #   "Started branch `201-issue-branch-button`"
   def new_issue_branch(issue, project, author, branch)
-    h = Gitlab::Routing.url_helpers
-    link = h.namespace_project_compare_url(project.namespace, project, from: project.default_branch, to: branch)
+    link = url_helpers.namespace_project_compare_url(project.namespace, project, from: project.default_branch, to: branch)
 
     body = "Started branch [`#{branch}`](#{link})"
     create_note(noteable: issue, project: project, author: author, note: body)
@@ -468,10 +467,14 @@ module SystemNoteService
     Rack::Utils.escape_html(text)
   end
 
+  def url_helpers
+    @url_helpers ||= Gitlab::Routing.url_helpers
+  end
+
   def diff_comparison_url(merge_request, project, oldrev)
     diff_id = merge_request.merge_request_diff.id
 
-    Gitlab::Routing.url_helpers.diffs_namespace_project_merge_request_url(
+    url_helpers.diffs_namespace_project_merge_request_url(
       project.namespace,
       project,
       merge_request.iid,
diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb
index 16e345501d9a10e56ecae9ef4f5eced30f17d6ac..b16840a123859afd05fa411c90c0f6e1ec5e2d28 100644
--- a/spec/services/system_note_service_spec.rb
+++ b/spec/services/system_note_service_spec.rb
@@ -41,34 +41,26 @@ describe SystemNoteService, services: true do
       let(:note_lines) { subject.note.split("\n").reject(&:blank?) }
 
       describe 'comparison diff link line' do
-        it 'adds the comparison link' do
-          link = Gitlab::Routing.url_helpers.diffs_namespace_project_merge_request_url(
-            project.namespace,
-            project,
-            noteable.iid,
-            diff_id: noteable.merge_request_diff.id,
-            start_sha: oldrev
-          )
-
-          expect(note_lines[0]).to eq "[Compare with previous version](#{link})"
+        it 'adds the comparison text' do
+          expect(note_lines[2]).to match "[Compare with previous version]"
         end
       end
 
       context 'without existing commits' do
         it 'adds a message header' do
-          expect(note_lines[1]).to eq "Added #{new_commits.size} commits:"
+          expect(note_lines[0]).to eq "Added #{new_commits.size} commits:"
         end
 
         it 'adds a message line for each commit' do
           new_commits.each_with_index do |commit, i|
             # Skip the header
-            expect(note_lines[i + 2]).to eq "* #{commit.short_id} - #{commit.title}"
+            expect(note_lines[i + 1]).to eq "* #{commit.short_id} - #{commit.title}"
           end
         end
       end
 
       describe 'summary line for existing commits' do
-        let(:summary_line) { note_lines[2] }
+        let(:summary_line) { note_lines[1] }
 
         context 'with one existing commit' do
           let(:old_commits) { [noteable.commits.last] }