Commit bdcb35b5 authored by Sean McGivern's avatar Sean McGivern

Merge branch '216216-simplify-external-diff-storage-attrs' into 'master'

Remove unneeded has_attribute guard for MR external diff storage

See merge request gitlab-org/gitlab!30991
parents 712d715f f76b258f
...@@ -385,37 +385,12 @@ class MergeRequestDiff < ApplicationRecord ...@@ -385,37 +385,12 @@ class MergeRequestDiff < ApplicationRecord
end end
end end
# Carrierwave defines `write_uploader` dynamically on this class, so `super`
# does not work. Alias the carrierwave method so we can call it when needed
alias_method :carrierwave_write_uploader, :write_uploader
# The `external_diff`, `external_diff_store`, and `stored_externally`
# columns were introduced in GitLab 11.8, but some background migration specs
# use factories that rely on current code with an old schema. Without these
# `has_attribute?` guards, they fail with a `MissingAttributeError`.
#
# For more details, see: https://gitlab.com/gitlab-org/gitlab-foss/issues/44990
def write_uploader(column, identifier)
carrierwave_write_uploader(column, identifier) if has_attribute?(column)
end
def update_external_diff_store def update_external_diff_store
return unless has_attribute?(:external_diff_store)
return unless saved_change_to_external_diff? || saved_change_to_stored_externally? return unless saved_change_to_external_diff? || saved_change_to_stored_externally?
update_column(:external_diff_store, external_diff.object_store) update_column(:external_diff_store, external_diff.object_store)
end end
def saved_change_to_external_diff?
super if has_attribute?(:external_diff)
end
def stored_externally
super if has_attribute?(:stored_externally)
end
alias_method :stored_externally?, :stored_externally
# If enabled, yields the external file containing the diff. Otherwise, yields # If enabled, yields the external file containing the diff. Otherwise, yields
# nil. This method is not thread-safe, but it *is* re-entrant, which allows # nil. This method is not thread-safe, but it *is* re-entrant, which allows
# multiple merge_request_diff_files to load their data efficiently # multiple merge_request_diff_files to load their data efficiently
...@@ -577,7 +552,6 @@ class MergeRequestDiff < ApplicationRecord ...@@ -577,7 +552,6 @@ class MergeRequestDiff < ApplicationRecord
end end
def use_external_diff? def use_external_diff?
return false unless has_attribute?(:external_diff)
return false unless Gitlab.config.external_diffs.enabled return false unless Gitlab.config.external_diffs.enabled
case Gitlab.config.external_diffs.when case Gitlab.config.external_diffs.when
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment