From 71033c9efb9dc1e9cb28b01b2b5aa55a50d2c8d7 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 22 May 2013 09:50:09 +0300 Subject: [PATCH] handle broken diffs gracefully --- app/models/merge_request.rb | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index c1b4d4e..8924587 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 -- libgit2 0.21.2