1. 07 Mar, 2016 8 commits
    • James Lopez's avatar
      WIP - initial export service and spec · f9eb3fc0
      James Lopez authored
      f9eb3fc0
    • Douwe Maan's avatar
      Merge branch 'feature/cross-project-labels' into 'master' · 99f08b3f
      Douwe Maan authored
      Add support for cross project references for labels
      
      ## Summary
      
      Support for cross project references for labels.
      
      ## Rationale
      
      1.   Cross project label references are currently not supported in GitLab
      1.   `to_reference` method signature in `Label` model breaks the abstraction introduced in `Referable`.
      
            `concerns/referable.rb:  def to_reference(_from_project = nil)`
      
            Signatures:
      
            ```
            label.rb:           def to_reference(format = :id)
      
            commit_range.rb:    def to_reference(from_project = nil)
            commit.rb:          def to_reference(from_project = nil)
            external_issue.rb:  def to_reference(_from_project = nil)
            group.rb:           def to_reference(_from_project = nil)
            issue.rb:           def to_reference(from_project = nil)
            merge_request.rb:   def to_reference(from_project = nil)
            milestone.rb:       def to_reference(from_project = nil)
            project.rb:         def to_reference(_from_project = nil)
            snippet.rb:         def to_reference(from_project = nil)
            user.rb:            def to_reference(_from_project = nil)
            ```
      
           This MR suggests using `def to_reference(from_project = nil, format: :id)` which makes use of keyword arguments and preserves abstract interface.
      
      1.   We need support for cross project label references when we want to move issue to another project
      
           It may happen that issue description, system notes or comments contain reference to label and this reference will be invalid after moving issue to another project and will not be displayed correctly unless we have support for cross project references.
      
           Merge request that needs this feature: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2831
      
      
      I think that cross project label references may be useful, (example: `Hey, see our issues for CI in GitLab CE! - gitab-org/gitlab-ce~"CI"`).
      
      cc @JobV @DouweM @rspeicher 
      
      See merge request !2966
      99f08b3f
    • Douwe Maan's avatar
      Merge branch 'rs-factory-nitpicks' into 'master' · eab7892d
      Douwe Maan authored
      More Factory cleanup
      
      Addresses nitpicks from https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2847
      
      See merge request !3108
      eab7892d
    • Douwe Maan's avatar
      Merge branch 'indicate-mr-diverged-from-target' into 'master' · d43c7784
      Douwe Maan authored
      Indicate when an MR diverged from the target branch
      
      This adds an indicator to the "Merge MR" box, to tell if and how much an MR diverged from its target branch.
      
      For instance, consider an MR to merge the branch `feature` into `master`. Some other commits were added to `master` since `feature` was created, and the two branches diverged.
      
      ```text
      o master
      |
      o    o feature
      |    |
      o    o
      |  /
      o
      ```
      
      In this case, there will be a label in the MR Merge box stating:
      
      > This MR is by 3 commits behind the target branch `master`.
      
      ## Screenshots
      
      ### The branch diverged from the target (UI Proposal)
      
      ![UI_suggestion_1](/uploads/cd5bee3959e68026ec7d5097259d53f4/UI_suggestion_1.png)
      
      ### The branch diverged from the target (alternative UI Proposal)
      
      ![UI_suggestion_2](/uploads/f36977101b59a610850e129837dfbc83/UI_suggestion_2.png)
      
      ## How is this useful?
      
      - In a _rebase-workflow_ (MR are preferably rebased before being merged), the reviewer wants to know if an MR is rebased on the target branch before merging it. 
          
          _With this indicator, the reviewer knows immediately if the branch is rebased, or if she needs to ask the committer to rebase its branch._
      
      <br>
      
      - To keep the git history readable, a team prefers to avoid merging branches that really lag a lot behind the target branch. Merging an MR that is 10 commits behind is fine, but 200 is too much.
      
          _With this indicator, the reviewer can see on the MR page if the branch is really far behind the target – or only a few commits behind._
      
      ## Open questions
      
      We've been using this at @captaintrain for a few months now, and found it quite useful.
      
      I guess the open-questions are mostly: what UI would be the more adequate? Any thoughts on this, on the general usefulness and/or on the code?
      
      See merge request !2217
      d43c7784
    • Douwe Maan's avatar
      Merge branch 'rs-note-delegates-mentionable' · be1ae2d6
      Douwe Maan authored
      # Conflicts:
      #	app/models/note.rb
      be1ae2d6
    • Douwe Maan's avatar
      Merge branch 'rs-remove-diffline' into 'master' · 49d7a293
      Douwe Maan authored
      Remove unused DiffLine model
      
      Added in Mar 2014. Only usage removed in Sep 2014.
      
      See merge request !3105
      49d7a293
    • Douwe Maan's avatar
      Merge branch 'rs-note-reuse-for-methods' into 'master' · de872f26
      Douwe Maan authored
      Make better use of the `Note#for_*?` methods
      
      We've got all these polymorphic type-checking methods, might as well use
      'em everywhere it makes sense.
      
      See merge request !3106
      de872f26
    • Douwe Maan's avatar
      Merge branch 'rs-note-model-cleanup' into 'master' · 20ed08ed
      Douwe Maan authored
      Minor Note model cleanup
      
      Remove `Note#noteable_type_name`
      
      This method was added in Dec 2012, its single use was removed two days
      later, and it's been there ever since.
      
      ---
      
      Remove `Note#system?` "override"
      
      This method was duplicating default Rails behavior.
      
      See merge request !3104
      20ed08ed
  2. 06 Mar, 2016 7 commits
  3. 05 Mar, 2016 8 commits
  4. 04 Mar, 2016 17 commits