From 84727fba96c6794874e1f94d581408b70e1842a7 Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Tue, 11 Aug 2015 10:26:19 +0200
Subject: [PATCH] Revert "Merge branch 'improve-merge-requests' into 'master'
"

This reverts commit 4773f38e28c91dbbb6e5e385e0c403877298bfed, reversing
changes made to 0d5d80b735eb18ae79eb2bfe26c08896d53db414.
---
 .../merge_request_widget.js.coffee            |   6 +-
 .../stylesheets/pages/merge_requests.scss     | 144 ++++++++++--------
 app/helpers/merge_requests_helper.rb          |  10 --
 app/models/merge_request.rb                   |   2 +-
 app/models/merge_request_diff.rb              |   4 +-
 .../projects/merge_requests/_show.html.haml   |  51 ++++---
 .../merge_requests/show/_commits.html.haml    |   2 +-
 .../merge_requests/show/_diffs.html.haml      |   2 +-
 .../merge_requests/widget/_heading.html.haml  |  37 ++++-
 .../widget/open/_accept.html.haml             |   6 +
 .../widget/open/_conflicts.html.haml          |   9 +-
 doc/workflow/README.md                        |   1 -
 doc/workflow/merge_requests.md                |  40 -----
 13 files changed, 160 insertions(+), 154 deletions(-)
 delete mode 100644 doc/workflow/merge_requests.md

diff --git a/app/assets/javascripts/merge_request_widget.js.coffee b/app/assets/javascripts/merge_request_widget.js.coffee
index 995a2f24093..c68a2a9d047 100644
--- a/app/assets/javascripts/merge_request_widget.js.coffee
+++ b/app/assets/javascripts/merge_request_widget.js.coffee
@@ -49,8 +49,10 @@ class @MergeRequestWidget
       @setMergeButtonClass('btn-danger')
 
   showCiCoverage: (coverage) ->
-    text = 'Coverage ' + coverage + '%'
-    $('.ci_widget:visible .ci-coverage').text(text)
+    cov_html = $('<span>')
+    cov_html.addClass('ci-coverage')
+    cov_html.text('Coverage ' + coverage + '%')
+    $('.ci_widget:visible').append(cov_html)
 
   setMergeButtonClass: (css_class) ->
     $('.accept_merge_request').removeClass("btn-create").addClass(css_class)
diff --git a/app/assets/stylesheets/pages/merge_requests.scss b/app/assets/stylesheets/pages/merge_requests.scss
index bb61a51029b..baba6f32129 100644
--- a/app/assets/stylesheets/pages/merge_requests.scss
+++ b/app/assets/stylesheets/pages/merge_requests.scss
@@ -1,15 +1,9 @@
-/**
- * MR -> show: Automerge widget
+
+  /**
+   * MR -> show: Automerge widget
  *
  */
 .mr-state-widget {
-  background: #FAFAFA;
-  margin-bottom: 20px;
-  color: #666;
-  border: 1px solid #e5e5e5;
-  @include box-shadow(0 1px 1px rgba(0, 0, 0, 0.05));
-  @include border-radius(3px);
-
   form {
     margin-bottom: 0;
     .clearfix {
@@ -26,67 +20,16 @@
       display: inline-block;
       margin: 0;
       margin-left: 20px;
-      padding: 5px;
+      padding: 10px 0;
       line-height: 20px;
+      font-weight: bold;
 
       .remove_source_checkbox {
         margin: 0;
+        font-weight: bold;
       }
     }
   }
-
-  .ci_widget {
-    border-bottom: 1px solid #EEE;
-
-    i {
-      margin-right: 4px;
-    }
-
-    &.ci-success {
-      color: $gl-success;
-    }
-
-    &.ci-skipped {
-      background-color: #eee;
-      color: #888;
-    }
-
-    &.ci-pending,
-    &.ci-running {
-      color: $gl-warning;
-    }
-
-    &.ci-failed,
-    &.ci-canceled,
-    &.ci-error {
-      color: $gl-danger;
-    }
-  }
-
-  .mr-widget-body,
-  .ci_widget,
-  .mr-widget-footer {
-    padding: 15px;
-  }
-
-  .mr-widget-body {
-    h4 {
-      font-weight: bold;
-      margin: 5px 0;
-    }
-
-    p:last-child {
-      margin-bottom: 0;
-    }
-  }
-
-  .mr-widget-footer {
-    border-top: 1px solid #EEE;
-  }
-
-  .ci-coverage {
-    float: right;
-  }
 }
 
 @media(min-width: $screen-sm-max) {
@@ -118,10 +61,23 @@
 }
 
 .label-branch {
-  color: #222;
+  @include border-radius(4px);
+  padding: 3px 4px;
+  border: none;
+  background: $hover;
+  color: #333;
   font-family: $monospace_font;
-  font-weight: bold;
+  font-weight: normal;
   overflow: hidden;
+
+  .label-project {
+    @include border-radius-left(4px);
+    padding: 3px 4px;
+    background: #279;
+    position: relative;
+    left: -4px;
+    letter-spacing: -1px;
+  }
 }
 
 .mr-list {
@@ -168,6 +124,64 @@
   display: none;
 }
 
+.mr-state-widget {
+  font-size: 13px;
+  background: #FAFAFA;
+  margin-bottom: 20px;
+  color: #666;
+  border: 1px solid #e5e5e5;
+  @include box-shadow(0 1px 1px rgba(0, 0, 0, 0.05));
+  @include border-radius(3px);
+
+  .ci_widget {
+    padding: 10px 15px;
+    font-size: 15px;
+    border-bottom: 1px solid #EEE;
+
+    &.ci-success {
+      color: $gl-success;
+    }
+
+    &.ci-skipped {
+      background-color: #eee;
+      color: #888;
+    }
+
+    &.ci-pending,
+    &.ci-running {
+      color: $gl-warning;
+    }
+
+    &.ci-failed,
+    &.ci-canceled,
+    &.ci-error {
+      color: $gl-danger;
+    }
+  }
+
+  .mr-widget-body {
+    padding: 10px 15px;
+
+    h4 {
+      font-weight: bold;
+      margin: 5px 0;
+    }
+
+    p:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  .mr-widget-footer {
+    padding: 10px 15px;
+    border-top: 1px solid #EEE;
+  }
+
+  .ci-coverage {
+    float: right;
+  }
+}
+
 .merge-request-show-labels {
   a {
     margin-right: 5px;
diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb
index f8169b4f288..45ee4fe4135 100644
--- a/app/helpers/merge_requests_helper.rb
+++ b/app/helpers/merge_requests_helper.rb
@@ -61,14 +61,4 @@ module MergeRequestsHelper
       }
     )
   end
-
-  def source_branch_with_namespace(merge_request)
-    if merge_request.for_fork?
-      namespace = link_to(merge_request.source_project_namespace,
-        project_path(merge_request.source_project))
-      namespace + ":#{merge_request.source_branch}"
-    else
-      merge_request.source_branch
-    end
-  end
 end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 467b90861f9..631a2d887cc 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -432,7 +432,7 @@ class MergeRequest < ActiveRecord::Base
     target_project.repository.fetch_ref(
       source_project.repository.path_to_repo,
       "refs/heads/#{source_branch}",
-      "refs/merge-requests/#{iid}/head"
+      "refs/merge-requests/#{id}/head"
     )
   end
 
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb
index e317c8eac4d..2177f972ca3 100644
--- a/app/models/merge_request_diff.rb
+++ b/app/models/merge_request_diff.rb
@@ -161,8 +161,8 @@ class MergeRequestDiff < ActiveRecord::Base
   def compare_result
     @compare_result ||=
       begin
-        # Update ref for merge request
-        merge_request.fetch_ref
+        # Update ref if merge request is from fork
+        merge_request.fetch_ref if merge_request.for_fork?
 
         # Get latest sha of branch from source project
         source_sha = merge_request.source_project.commit(source_branch).sha
diff --git a/app/views/projects/merge_requests/_show.html.haml b/app/views/projects/merge_requests/_show.html.haml
index 2662e3aff6b..c57eee14143 100644
--- a/app/views/projects/merge_requests/_show.html.haml
+++ b/app/views/projects/merge_requests/_show.html.haml
@@ -6,25 +6,40 @@
     = render "projects/merge_requests/show/mr_box"
     %hr
     .append-bottom-20
-      - if @merge_request.open?
-        .btn-group.btn-group-sm.pull-right
-          %a.btn.btn-sm.dropdown-toggle{ data: {toggle: :dropdown} }
-            = icon('download')
-            Download as
-            %span.caret
-          %ul.dropdown-menu
-            %li= link_to "Email Patches", merge_request_path(@merge_request, format: :patch)
-            %li= link_to "Plain Diff",    merge_request_path(@merge_request, format: :diff)
-      .light
-        %div
-          %span From
-          %span.label-branch #{source_branch_with_namespace(@merge_request)}
+      .slead
+        %span From
+        - if @merge_request.for_fork?
+          %strong.label-branch<
+            - if @merge_request.source_project
+              = link_to @merge_request.source_project_namespace, namespace_project_path(@merge_request.source_project.namespace, @merge_request.source_project)
+            - else
+              \ #{@merge_request.source_project_namespace}
+            \:#{@merge_request.source_branch}
           %span into
-          %span.label-branch #{@merge_request.target_branch}
-        - if @merge_request.open? && !@merge_request.branch_missing?
-          %div
-            If you want to try or merge this request manually, you can use the
-            = link_to "command line", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal"
+          %strong.label-branch #{@merge_request.target_project_namespace}:#{@merge_request.target_branch}
+        - else
+          %strong.label-branch #{@merge_request.source_branch}
+          %span into
+          %strong.label-branch #{@merge_request.target_branch}
+        - if @merge_request.open?
+          .btn-group.btn-group-sm.pull-right
+            %a.btn.btn-sm.dropdown-toggle{ data: {toggle: :dropdown} }
+              = icon('download')
+              Download as
+              %span.caret
+            %ul.dropdown-menu
+              %li= link_to "Email Patches", merge_request_path(@merge_request, format: :patch)
+              %li= link_to "Plain Diff",    merge_request_path(@merge_request, format: :diff)
+
+    - if @merge_request.open? and @merge_request.source_branch_exists?
+      .append-bottom-20
+        .slead
+          %span
+            Fetch the branch with
+            %strong.label-branch<
+              git fetch
+              \ #{@merge_request.source_project.http_url_to_repo}
+              \ #{@merge_request.source_branch}
 
     = render "projects/merge_requests/show/how_to_merge"
     = render "projects/merge_requests/widget/show.html.haml"
diff --git a/app/views/projects/merge_requests/show/_commits.html.haml b/app/views/projects/merge_requests/show/_commits.html.haml
index a71b181a6a5..3b7f283daf0 100644
--- a/app/views/projects/merge_requests/show/_commits.html.haml
+++ b/app/views/projects/merge_requests/show/_commits.html.haml
@@ -1 +1 @@
-= render "projects/commits/commits", project: @merge_request.project
+= render "projects/commits/commits", project: @merge_request.source_project
diff --git a/app/views/projects/merge_requests/show/_diffs.html.haml b/app/views/projects/merge_requests/show/_diffs.html.haml
index 626970f39be..786b5f39063 100644
--- a/app/views/projects/merge_requests/show/_diffs.html.haml
+++ b/app/views/projects/merge_requests/show/_diffs.html.haml
@@ -1,5 +1,5 @@
 - if @merge_request_diff.collected?
-  = render "projects/diffs/diffs", diffs: @merge_request.diffs, project: @merge_request.project
+  = render "projects/diffs/diffs", diffs: @merge_request.diffs, project: @merge_request.source_project
 - elsif @merge_request_diff.empty?
   .nothing-here-block Nothing to merge from #{@merge_request.source_branch} into #{@merge_request.target_branch}
 - else
diff --git a/app/views/projects/merge_requests/widget/_heading.html.haml b/app/views/projects/merge_requests/widget/_heading.html.haml
index 17d529766e6..f04eac0e3bb 100644
--- a/app/views/projects/merge_requests/widget/_heading.html.haml
+++ b/app/views/projects/merge_requests/widget/_heading.html.haml
@@ -1,14 +1,28 @@
 - if @merge_request.has_ci?
   .mr-widget-heading
-    - [:success, :skipped, :canceled, :failed, :running, :pending].each do |status|
+    .ci_widget.ci-success{style: "display:none"}
+      = icon("check")
+      %span CI build passed
+      for #{@merge_request.last_commit_short_sha}.
+      = link_to "View build page", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"
+
+    .ci_widget.ci-skipped{style: "display:none"}
+      = icon("check")
+      %span CI build skipped
+      for #{@merge_request.last_commit_short_sha}.
+      = link_to "View build page", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"
+
+    .ci_widget.ci-failed{style: "display:none"}
+      = icon("times")
+      %span CI build failed
+      for #{@merge_request.last_commit_short_sha}.
+      = link_to "View build page", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"
+
+    - [:running, :pending].each do |status|
       .ci_widget{class: "ci-#{status}", style: "display:none"}
-        - if status == :success
-          = icon("check-circle")
-        - else
-          = icon("circle")
+        = icon("clock-o")
         %span CI build #{status}
         for #{@merge_request.last_commit_short_sha}.
-        %span.ci-coverage
         = link_to "View build page", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"
 
     .ci_widget
@@ -16,12 +30,19 @@
       Checking for CI status for #{@merge_request.last_commit_short_sha}
 
     .ci_widget.ci-not_found{style: "display:none"}
-      = icon("times-circle")
+      = icon("times")
       %span Can not find commit in the CI server
       for #{@merge_request.last_commit_short_sha}.
+      
+
+    .ci_widget.ci-canceled{style: "display:none"}
+      = icon("times")
+      %span CI build canceled
+      for #{@merge_request.last_commit_short_sha}.
+      = link_to "View build page", ci_build_details_path(@merge_request), :"data-no-turbolink" => "data-no-turbolink"
 
     .ci_widget.ci-error{style: "display:none"}
-      = icon("times-circle")
+      = icon("times")
       %span Cannot connect to the CI server. Please check your settings and try again.
 
   :coffeescript
diff --git a/app/views/projects/merge_requests/widget/open/_accept.html.haml b/app/views/projects/merge_requests/widget/open/_accept.html.haml
index 1be98cbe8de..3c0cd25ba07 100644
--- a/app/views/projects/merge_requests/widget/open/_accept.html.haml
+++ b/app/views/projects/merge_requests/widget/open/_accept.html.haml
@@ -18,6 +18,12 @@
           text: @merge_request.merge_commit_message,
           rows: 14, hint: true
 
+  %br
+  .light
+    If you want to merge this request manually, you can use the
+    %strong
+      = link_to "command line", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal"
+
   :coffeescript
     $('.accept-mr-form').on 'ajax:before', ->
       btn = $('.accept_merge_request')
diff --git a/app/views/projects/merge_requests/widget/open/_conflicts.html.haml b/app/views/projects/merge_requests/widget/open/_conflicts.html.haml
index 440a7aa1c61..7dc3b4eb2cc 100644
--- a/app/views/projects/merge_requests/widget/open/_conflicts.html.haml
+++ b/app/views/projects/merge_requests/widget/open/_conflicts.html.haml
@@ -1,11 +1,10 @@
-%h4
-  This merge request contains merge conflicts that must be resolved.
-
 - if @merge_request.can_be_merged_by?(current_user)
+  %h4
+    This merge request contains merge conflicts that must be resolved.
   %p
     You can merge it manually using the
     %strong
       = link_to "command line", "#modal_merge_info", class: "how_to_merge_link vlink", title: "How To Merge", "data-toggle" => "modal"
 - else
-  %p
-    Only those with write access to this repository can merge merge requests.
+  %strong This merge request contains merge conflicts that must be resolved.
+  Only those with write access to this repository can merge merge requests.
diff --git a/doc/workflow/README.md b/doc/workflow/README.md
index 5b8d72dfd34..3915198ad2a 100644
--- a/doc/workflow/README.md
+++ b/doc/workflow/README.md
@@ -13,5 +13,4 @@
 - [Project users](add-user/add-user.md)
 - [Protected branches](protected_branches.md)
 - [Web Editor](web_editor.md)
-- [Merge Requests](merge_requests.md)
 - ["Work In Progress" Merge Requests](wip_merge_requests.md)
diff --git a/doc/workflow/merge_requests.md b/doc/workflow/merge_requests.md
deleted file mode 100644
index 751e19da7f1..00000000000
--- a/doc/workflow/merge_requests.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Merge Requests
-
-Merge requests allow you to exchange changes you made to source code
-
-## Checkout merge requests locally
-
-Locate the section for your GitLab remote in the `.git/config` file. It looks like this:
-
-```
-[remote "origin"]
-  url = https://gitlab.com/gitlab-org/gitlab-ce.git
-  fetch = +refs/heads/*:refs/remotes/origin/*
-```
-
-Now add the line `fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*` to this section. 
-
-It should looks like this: 
-
-```
-[remote "origin"]
-  url = https://gitlab.com/gitlab-org/gitlab-ce.git
-  fetch = +refs/heads/*:refs/remotes/origin/*
-  fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*
-```
-
-Now you can fetch all the merge requests requests:
-
-```
-$ git fetch origin
-From https://gitlab.com/gitlab-org/gitlab-ce.git
- * [new ref]         refs/merge-requests/1/head -> origin/merge-requests/1
- * [new ref]         refs/merge-requests/2/head -> origin/merge-requests/2
-...
-```
-
-To check out a particular merge request:
-
-```
-$ git checkout origin/merge-requests/1
-```
-- 
GitLab