From 56264f35d40e3ebcebf2b88b9ff6f3a8f4f545e9 Mon Sep 17 00:00:00 2001
From: Hiroyuki Sato <h-sato@ruby-dev.jp>
Date: Fri, 28 Oct 2016 20:38:14 +0900
Subject: [PATCH] Network page appear with an error message when entering
 nonexistent git revision

---
 app/assets/javascripts/network/network_bundle.js | 2 ++
 app/controllers/projects/network_controller.rb   | 4 +++-
 app/views/projects/network/show.html.haml        | 5 +++--
 lib/extracts_path.rb                             | 4 ++--
 4 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/app/assets/javascripts/network/network_bundle.js b/app/assets/javascripts/network/network_bundle.js
index 42d6799c82f..a192273a180 100644
--- a/app/assets/javascripts/network/network_bundle.js
+++ b/app/assets/javascripts/network/network_bundle.js
@@ -9,6 +9,8 @@
 
 (function() {
   $(function() {
+    if (!$(".network-graph").length) return;
+
     var network_graph;
     network_graph = new Network({
       url: $(".network-graph").attr('data-url'),
diff --git a/app/controllers/projects/network_controller.rb b/app/controllers/projects/network_controller.rb
index 34318391dd9..54783bbc5bb 100644
--- a/app/controllers/projects/network_controller.rb
+++ b/app/controllers/projects/network_controller.rb
@@ -11,7 +11,9 @@ class Projects::NetworkController < Projects::ApplicationController
     @commit_url = namespace_project_commit_path(@project.namespace, @project, 'ae45ca32').gsub("ae45ca32", "%s")
 
     respond_to do |format|
-      format.html
+      format.html do
+        flash.now[:alert] = "Git revision '#{params[:extended_sha1]}' does not exist." if params[:extended_sha1].present? && !@commit
+      end
 
       format.json do
         @graph = Network::Graph.new(project, @ref, @commit, @options[:filter_ref])
diff --git a/app/views/projects/network/show.html.haml b/app/views/projects/network/show.html.haml
index 29df1bab04e..d8951e69242 100644
--- a/app/views/projects/network/show.html.haml
+++ b/app/views/projects/network/show.html.haml
@@ -17,5 +17,6 @@
               = check_box_tag :filter_ref, 1, @options[:filter_ref]
               %span Begin with the selected commit
 
-    .network-graph{ data: { url: @url, commit_url: @commit_url, ref: @ref, commit_id: @commit.id } }
-      = spinner nil, true
+    - if @commit
+      .network-graph{ data: { url: @url, commit_url: @commit_url, ref: @ref, commit_id: @commit.id } }
+        = spinner nil, true
diff --git a/lib/extracts_path.rb b/lib/extracts_path.rb
index 9b74364849e..a8cc189a8c2 100644
--- a/lib/extracts_path.rb
+++ b/lib/extracts_path.rb
@@ -125,9 +125,9 @@ module ExtractsPath
 
         request.format = :atom if @commit
       end
-    end
 
-    raise InvalidPathError unless @commit
+      raise InvalidPathError unless @commit
+    end
 
     @hex_path = Digest::SHA1.hexdigest(@path)
     @logs_path = logs_file_namespace_project_ref_path(@project.namespace,
-- 
GitLab