MR: Handle broken diff ex. in case its too huge
This commit is contained in:
parent
d40b9ce26d
commit
0a6b64e6a9
3 changed files with 38 additions and 19 deletions
|
@ -3,6 +3,8 @@ require File.join(Rails.root, "app/models/commit")
|
|||
class MergeRequest < ActiveRecord::Base
|
||||
include Upvote
|
||||
|
||||
BROKEN_DIFF = "--broken-diff"
|
||||
|
||||
UNCHECKED = 1
|
||||
CAN_BE_MERGED = 2
|
||||
CANNOT_BE_MERGED = 3
|
||||
|
@ -108,14 +110,25 @@ class MergeRequest < ActiveRecord::Base
|
|||
def reloaded_diffs
|
||||
if open? && unmerged_diffs.any?
|
||||
self.st_diffs = unmerged_diffs
|
||||
save
|
||||
self.save
|
||||
end
|
||||
diffs
|
||||
|
||||
rescue Grit::Git::GitTimeout
|
||||
self.st_diffs = [BROKEN_DIFF]
|
||||
self.save
|
||||
end
|
||||
|
||||
def broken_diffs?
|
||||
diffs == [BROKEN_DIFF]
|
||||
end
|
||||
|
||||
def valid_diffs?
|
||||
!broken_diffs?
|
||||
end
|
||||
|
||||
def unmerged_diffs
|
||||
commits = project.repo.commits_between(target_branch, source_branch).map {|c| Commit.new(c)}
|
||||
diffs = project.repo.diff(commits.first.prev_commit.id, commits.last.id) rescue []
|
||||
diffs = project.repo.diff(commits.first.prev_commit.id, commits.last.id)
|
||||
end
|
||||
|
||||
def last_commit
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue