Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-07-04 19:26:28 +0300
committerDouwe Maan <douwe@selenight.nl>2016-07-07 01:51:01 +0300
commitd7e8479ee8c7a127ed9cd984755a4ea3a8f1c078 (patch)
tree01354b0f96ebac9a2b66343c6b1c0d0b6ce3a89d /app
parentddec2ed0dfb0981bf1f022f705470402e20ef9bc (diff)
Keep around DiffNote position commits
Diffstat (limited to 'app')
-rw-r--r--app/models/diff_note.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb
index 881ae5d1cad..cdd1c4b4aef 100644
--- a/app/models/diff_note.rb
+++ b/app/models/diff_note.rb
@@ -14,6 +14,7 @@ class DiffNote < Note
before_validation :set_original_position, :update_position, on: :create
before_validation :set_line_code
+ after_save :keep_around_commits
class << self
def build_discussion_id(noteable_type, noteable_id, position)
@@ -116,4 +117,16 @@ class DiffNote < Note
errors.add(:position, "is invalid")
end
+
+ def keep_around_commits
+ project.repository.keep_around(self.original_position.base_sha)
+ project.repository.keep_around(self.original_position.start_sha)
+ project.repository.keep_around(self.original_position.head_sha)
+
+ if self.position != self.original_position
+ project.repository.keep_around(self.position.base_sha)
+ project.repository.keep_around(self.position.start_sha)
+ project.repository.keep_around(self.position.head_sha)
+ end
+ end
end