diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-05-22 09:50:09 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-05-22 09:50:09 +0300 |
commit | 71033c9efb9dc1e9cb28b01b2b5aa55a50d2c8d7 (patch) | |
tree | 4a4ddc6c7ba90a65e8f01ce86f5f4836ce4fb2f7 | |
parent | 86ae72787c830e3d89c37f80254f64905d8daebe (diff) | |
download | gitlab-ce-71033c9efb9dc1e9cb28b01b2b5aa55a50d2c8d7.tar.gz |
handle broken diffs gracefully
-rw-r--r-- | app/models/merge_request.rb | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index c1b4d4e0760..89245870ca2 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -118,7 +118,7 @@ class MergeRequest < ActiveRecord::Base end def broken_diffs? - diffs == [Gitlab::Git::Diff::BROKEN_DIFF] + diffs == broken_diffs end def valid_diffs? @@ -214,10 +214,22 @@ class MergeRequest < ActiveRecord::Base end def dump_diffs(diffs) - diffs.map(&:to_hash) + if broken_diffs? + broken_diffs + else + diffs.map(&:to_hash) + end + end + + def load_diffs(raw) + if raw == broken_diffs + broken_diffs + else + raw.map { |hash| Gitlab::Git::Diff.new(hash) } + end end - def load_diffs(array) - array.map { |hash| Gitlab::Git::Diff.new(hash) } + def broken_diffs + [Gitlab::Git::Diff::BROKEN_DIFF] end end |