summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-04-26 19:57:37 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-05-13 17:55:42 -0500
commit7e1f14e21517d3907a0e096d44b30797612f69cd (patch)
treea5a61079e849cb66aa3221417c9dd5cccff9c57d /app/models/merge_request.rb
parent3b50867550818413eed01fcbe85e5442707150be (diff)
downloadgitlab-ce-7e1f14e21517d3907a0e096d44b30797612f69cd.tar.gz
Preserve commits/diff/comments for PRs that were merged on GitHub
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 5c5e6007aa0..45ddcf6812a 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -26,6 +26,10 @@ class MergeRequest < ActiveRecord::Base
# when creating new merge request
attr_accessor :can_be_created, :compare_commits, :compare
+ # Temporary fields to store target_sha, and base_sha to
+ # compare when importing pull requests from GitHub
+ attr_accessor :base_target_sha, :head_source_sha
+
state_machine :state, initial: :opened do
event :close do
transition [:reopened, :opened] => :closed
@@ -490,10 +494,14 @@ class MergeRequest < ActiveRecord::Base
end
def target_sha
- @target_sha ||= target_project.repository.commit(target_branch).try(:sha)
+ return @base_target_sha if defined?(@base_target_sha)
+
+ target_project.repository.commit(target_branch).try(:sha)
end
def source_sha
+ return @head_source_sha if defined?(@head_source_sha)
+
last_commit.try(:sha) || source_tip.try(:sha)
end