summaryrefslogtreecommitdiff
path: root/app/models/commit.rb
diff options
context:
space:
mode:
authorSaverio Miroddi <saverio.pub2@gmail.com>2017-08-17 20:26:06 +0200
committerSaverio Miroddi <saverio.pub2@gmail.com>2017-08-17 22:38:47 +0200
commitc0f921606c91e3e5c601497f57becbf4c6a8e3ac (patch)
tree3cb77d0f5b837d16fd572946be9d308541d54d85 /app/models/commit.rb
parent919c0c7ba7369970bf57e9388333af120b74203d (diff)
downloadgitlab-ce-c0f921606c91e3e5c601497f57becbf4c6a8e3ac.tar.gz
Correct the cherry-pick message for merge commits
The list of commits must be generated from the merge request, not from a diff of the branches.
Diffstat (limited to 'app/models/commit.rb')
-rw-r--r--app/models/commit.rb17
1 files changed, 7 insertions, 10 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb
index f36e07fc3ca..5f59d088cd2 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -251,19 +251,16 @@ class Commit
project.repository.next_branch("cherry-pick-#{short_id}", mild: true)
end
- def cherry_pick_description(start_project, start_branch_name)
+ def cherry_pick_description(user)
message_buffer = "(cherry picked from commit #{sha})"
- if merge_commit?
- compare = CompareService.new(project, sha).execute(start_project, start_branch_name)
-
- # Ignore the merge commit.
- commits_in_merge = compare.commits[0..-2]
+ if merged_merge_request?(user)
+ commits_in_merge_request = merged_merge_request(user).commits
- if commits_in_merge.present?
+ if commits_in_merge_request.present?
message_buffer << "\n"
- commits_in_merge.each do |commit_in_merge|
+ commits_in_merge_request.each do |commit_in_merge|
message_buffer << "\n#{commit_in_merge.short_id} #{commit_in_merge.title}"
end
end
@@ -272,8 +269,8 @@ class Commit
message_buffer
end
- def cherry_pick_message(start_project, start_branch_name)
- %Q{#{message}\n\n#{cherry_pick_description(start_project, start_branch_name)}}
+ def cherry_pick_message(user)
+ %Q{#{message}\n\n#{cherry_pick_description(user)}}
end
def revert_description(user)