summaryrefslogtreecommitdiff
path: root/lib/gitlab/diff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-06-08 16:14:56 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-06-08 16:14:56 +0000
commite9002222a0fc65e4e3328c7c536e43516986eb40 (patch)
tree8f36da7826e9d4f91ba726cdd96ce02ef8367347 /lib/gitlab/diff
parent9ea883fb5d02608010db858237cbd4926ae99650 (diff)
parentffbbd4112eb5a0a927925e70644128bf25145414 (diff)
downloadgitlab-ce-e9002222a0fc65e4e3328c7c536e43516986eb40.tar.gz
Merge branch 'dm-diff-file-diffable' into 'master'
Move diffable? method from Repository to Diff::File See merge request !11980
Diffstat (limited to 'lib/gitlab/diff')
-rw-r--r--lib/gitlab/diff/file.rb12
-rw-r--r--lib/gitlab/diff/file_collection/merge_request_diff.rb5
2 files changed, 13 insertions, 4 deletions
diff --git a/lib/gitlab/diff/file.rb b/lib/gitlab/diff/file.rb
index 374c5117517..4212a0dbe2e 100644
--- a/lib/gitlab/diff/file.rb
+++ b/lib/gitlab/diff/file.rb
@@ -165,6 +165,18 @@ module Gitlab
def file_identifier
"#{file_path}-#{new_file?}-#{deleted_file?}-#{renamed_file?}"
end
+
+ def diffable?
+ repository.attributes(file_path).fetch('diff') { true }
+ end
+
+ def binary?
+ old_blob&.binary? || new_blob&.binary?
+ end
+
+ def text?
+ !binary?
+ end
end
end
end
diff --git a/lib/gitlab/diff/file_collection/merge_request_diff.rb b/lib/gitlab/diff/file_collection/merge_request_diff.rb
index 9a58b500a2c..fcda1fe2233 100644
--- a/lib/gitlab/diff/file_collection/merge_request_diff.rb
+++ b/lib/gitlab/diff/file_collection/merge_request_diff.rb
@@ -66,10 +66,7 @@ module Gitlab
end
def cacheable?(diff_file)
- @merge_request_diff.present? &&
- diff_file.blob &&
- diff_file.blob.text? &&
- @project.repository.diffable?(diff_file.blob)
+ @merge_request_diff.present? && diff_file.text? && diff_file.diffable?
end
def cache_key