summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-06-20 18:43:55 +0200
committerDouwe Maan <douwe@selenight.nl>2016-07-06 18:49:03 -0400
commit18a5bb05204ee437902d82e5973a427b9aac6d53 (patch)
tree25e739027830e64aa06e7f2f832478c6ae4f8439
parentc66a7b0e949d384448fc1097bf8c1af1d6b7324d (diff)
downloadgitlab-ce-18a5bb05204ee437902d82e5973a427b9aac6d53.tar.gz
Store diff head and start commit shas on MR diffs
-rw-r--r--app/models/merge_request_diff.rb17
-rw-r--r--db/migrate/20160508202603_add_head_commit_id_to_merge_request_diffs.rb5
-rw-r--r--db/migrate/20160516224534_add_start_commit_id_to_merge_request_diffs.rb5
3 files changed, 20 insertions, 7 deletions
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb
index 0fcde6fc8f1..fd69f915bd2 100644
--- a/app/models/merge_request_diff.rb
+++ b/app/models/merge_request_diff.rb
@@ -24,7 +24,7 @@ class MergeRequestDiff < ActiveRecord::Base
serialize :st_diffs
after_create :reload_content, unless: :importing?
- after_save :keep_around_commit
+ after_save :keep_around_commits
def reload_content
reload_commits
@@ -147,12 +147,13 @@ class MergeRequestDiff < ActiveRecord::Base
new_attributes[:st_diffs] = new_diffs
- base_commit_sha = self.repository.merge_base(self.head, self.base)
- new_attributes[:base_commit_sha] = base_commit_sha
-
- self.repository.keep_around(base_commit_sha)
+ new_attributes[:start_commit_sha] = self.target_branch_sha
+ new_attributes[:head_commit_sha] = self.source_branch_sha
+ new_attributes[:base_commit_sha] = branch_base_sha
update_columns_serialized(new_attributes)
+
+ keep_around_commits
end
# Collect array of Git::Diff objects
@@ -223,7 +224,9 @@ class MergeRequestDiff < ActiveRecord::Base
reload
end
- def keep_around_commit
- self.repository.keep_around(self.base_commit_sha)
+ def keep_around_commits
+ self.repository.keep_around(target_branch_sha)
+ self.repository.keep_around(source_branch_sha)
+ self.repository.keep_around(branch_base_sha)
end
end
diff --git a/db/migrate/20160508202603_add_head_commit_id_to_merge_request_diffs.rb b/db/migrate/20160508202603_add_head_commit_id_to_merge_request_diffs.rb
new file mode 100644
index 00000000000..1c4d60e7234
--- /dev/null
+++ b/db/migrate/20160508202603_add_head_commit_id_to_merge_request_diffs.rb
@@ -0,0 +1,5 @@
+class AddHeadCommitIdToMergeRequestDiffs < ActiveRecord::Migration
+ def change
+ add_column :merge_request_diffs, :head_commit_sha, :string
+ end
+end
diff --git a/db/migrate/20160516224534_add_start_commit_id_to_merge_request_diffs.rb b/db/migrate/20160516224534_add_start_commit_id_to_merge_request_diffs.rb
new file mode 100644
index 00000000000..b7fd76ee84b
--- /dev/null
+++ b/db/migrate/20160516224534_add_start_commit_id_to_merge_request_diffs.rb
@@ -0,0 +1,5 @@
+class AddStartCommitIdToMergeRequestDiffs < ActiveRecord::Migration
+ def change
+ add_column :merge_request_diffs, :start_commit_sha, :string
+ end
+end