diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-04-26 19:57:37 -0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-05-13 17:55:42 -0500 |
commit | 7e1f14e21517d3907a0e096d44b30797612f69cd (patch) | |
tree | a5a61079e849cb66aa3221417c9dd5cccff9c57d /app/models/merge_request.rb | |
parent | 3b50867550818413eed01fcbe85e5442707150be (diff) | |
download | gitlab-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.rb | 10 |
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 |