Commit 71033c9efb9dc1e9cb28b01b2b5aa55a50d2c8d7

Authored by Dmitriy Zaporozhets
1 parent 86ae7278

handle broken diffs gracefully

Showing 1 changed file with 16 additions and 4 deletions   Show diff stats
app/models/merge_request.rb
... ... @@ -118,7 +118,7 @@ class MergeRequest < ActiveRecord::Base
118 118 end
119 119  
120 120 def broken_diffs?
121   - diffs == [Gitlab::Git::Diff::BROKEN_DIFF]
  121 + diffs == broken_diffs
122 122 end
123 123  
124 124 def valid_diffs?
... ... @@ -214,10 +214,22 @@ class MergeRequest < ActiveRecord::Base
214 214 end
215 215  
216 216 def dump_diffs(diffs)
217   - diffs.map(&:to_hash)
  217 + if broken_diffs?
  218 + broken_diffs
  219 + else
  220 + diffs.map(&:to_hash)
  221 + end
  222 + end
  223 +
  224 + def load_diffs(raw)
  225 + if raw == broken_diffs
  226 + broken_diffs
  227 + else
  228 + raw.map { |hash| Gitlab::Git::Diff.new(hash) }
  229 + end
218 230 end
219 231  
220   - def load_diffs(array)
221   - array.map { |hash| Gitlab::Git::Diff.new(hash) }
  232 + def broken_diffs
  233 + [Gitlab::Git::Diff::BROKEN_DIFF]
222 234 end
223 235 end
... ...