diff options
author | Robert Speicher <robert@gitlab.com> | 2015-09-21 23:46:15 +0300 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2015-09-21 23:46:15 +0300 |
commit | ba71542a5a14f703710a146f58b53bb503215060 (patch) | |
tree | 9cdb26ca2a756d5caf16079faa6f862cdf376cbd /app | |
parent | ac289687a9ce26c5e14f7d2d3d32ae05ae9f7f77 (diff) | |
parent | de8497ca56a20f8c9362fdb8a9a8629a551f0a4d (diff) |
Merge branch 'fix-issue-2593' into 'master'
Fix Error 500 when comparing non-existing branches
Closes #2593
See merge request !1355
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/projects/compare_controller.rb | 10 | ||||
-rw-r--r-- | app/services/compare_service.rb | 5 |
2 files changed, 10 insertions, 5 deletions
diff --git a/app/controllers/projects/compare_controller.rb b/app/controllers/projects/compare_controller.rb index d9b3adae95b..d15004f93a6 100644 --- a/app/controllers/projects/compare_controller.rb +++ b/app/controllers/projects/compare_controller.rb @@ -16,10 +16,12 @@ class Projects::CompareController < Projects::ApplicationController compare_result = CompareService.new. execute(@project, head_ref, @project, base_ref) - @commits = compare_result.commits - @diffs = compare_result.diffs - @commit = @commits.last - @line_notes = [] + if compare_result + @commits = compare_result.commits + @diffs = compare_result.diffs + @commit = @commits.last + @line_notes = [] + end end def create diff --git a/app/services/compare_service.rb b/app/services/compare_service.rb index 70f642baaaa..bfe6a3dc4be 100644 --- a/app/services/compare_service.rb +++ b/app/services/compare_service.rb @@ -4,7 +4,10 @@ require 'securerandom' # and return Gitlab::CompareResult object that responds to commits and diffs class CompareService def execute(source_project, source_branch, target_project, target_branch) - source_sha = source_project.commit(source_branch).sha + source_commit = source_project.commit(source_branch) + return unless source_commit + + source_sha = source_commit.sha # If compare with other project we need to fetch ref first unless target_project == source_project |