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
diff options
context:
space:
mode:
authorSaverio Miroddi <saverio.pub2@gmail.com>2017-08-10 22:16:49 +0300
committerSaverio Miroddi <saverio.pub2@gmail.com>2017-08-10 22:18:22 +0300
commit1d6ba597028142511af8c9863f81073278ccd927 (patch)
treea564f1d60a0ed0cc6407d18d3f198a124b86829b /app/models/commit.rb
parent3a9f210b5ce44f1a464e765ff6e95c1eac5363d8 (diff)
Add 'from commit' information to cherry-picked commits
Store the original commit in the commit message. In case of merge commit, the commits added to the start branch are also listed.
Diffstat (limited to 'app/models/commit.rb')
-rw-r--r--app/models/commit.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 638fddc5d3d..24732b6dd29 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -251,6 +251,30 @@ class Commit
project.repository.next_branch("cherry-pick-#{short_id}", mild: true)
end
+ def cherry_pick_message(start_branch_name)
+ message_buffer = message.dup
+
+ if merge_commit?
+ compare = CompareService.new(project, sha).execute(project, start_branch_name)
+
+ *commits_in_merge, merge_commit = compare.commits
+
+ message_buffer << "\n\ncherry picked from merge #{merge_commit.sha}"
+
+ if commits_in_merge.present?
+ message_buffer << "; commits:"
+
+ commits_in_merge.each do |commit_in_merge|
+ message_buffer << "\n- #{commit_in_merge.sha}"
+ end
+ end
+ else
+ message_buffer << "\ncherry picked from commit #{sha}"
+ end
+
+ message_buffer
+ end
+
def revert_description(user)
if merged_merge_request?(user)
"This reverts merge request #{merged_merge_request(user).to_reference}"