Commit b3834bc9b03566252ca83f70f4af882561ac261f

Authored by Riyad Preukschas
1 parent 2b1afa0e

Remove MergeRequest#to_raw and replace it with #to_diff and #to_patch

Showing 1 changed file with 14 additions and 12 deletions   Show diff stats
app/models/merge_request.rb
... ... @@ -202,20 +202,22 @@ class MergeRequest < ActiveRecord::Base
202 202 false
203 203 end
204 204  
205   - def to_raw
206   - FileUtils.mkdir_p(Rails.root.join("tmp", "patches"))
207   - patch_path = Rails.root.join("tmp", "patches", "merge_request_#{self.id}.patch")
208   -
209   - from = commits.last.id
210   - to = source_branch
211   -
212   - project.repo.git.run('', "format-patch" , " > #{patch_path.to_s}", {}, ["#{from}..#{to}", "--stdout"])
213   -
214   - patch_path
215   - end
216   -
217 205 def mr_and_commit_notes
218 206 commit_ids = commits.map(&:id)
219 207 Note.where("(noteable_type = 'MergeRequest' AND noteable_id = :mr_id) OR (noteable_type = 'Commit' AND noteable_id IN (:commit_ids))", mr_id: id, commit_ids: commit_ids)
220 208 end
  209 +
  210 + # Returns the raw diff for this merge request
  211 + #
  212 + # see "git diff"
  213 + def to_diff
  214 + project.repo.git.native(:diff, {timeout: 30, raise: true}, "#{target_branch}...#{source_branch}")
  215 + end
  216 +
  217 + # Returns the commit as a series of email patches.
  218 + #
  219 + # see "git format-patch"
  220 + def to_patch
  221 + project.repo.git.format_patch({timeout: 30, raise: true, stdout: true}, "#{target_branch}..#{source_branch}")
  222 + end
221 223 end
... ...