Skip to content
Snippets Groups Projects
Commit 64776ab2 authored by Rémy Coutable's avatar Rémy Coutable
Browse files

Merge branch 'start-with-iid-on-new-branch' into 'master'

Start with iid on branch creation

After the discussion it in #3886 it was decided the iid should be in the beginning of the branch name.

See merge request !3708
parents e1acd361 0385cd5a
No related branches found
No related tags found
No related merge requests found
Loading
@@ -106,7 +106,7 @@ class Issue < ActiveRecord::Base
Loading
@@ -106,7 +106,7 @@ class Issue < ActiveRecord::Base
   
def related_branches def related_branches
project.repository.branch_names.select do |branch| project.repository.branch_names.select do |branch|
branch.end_with?("-#{iid}") branch =~ /\A#{iid}-(?!\d+-stable)/i
end end
end end
   
Loading
@@ -151,7 +151,7 @@ class Issue < ActiveRecord::Base
Loading
@@ -151,7 +151,7 @@ class Issue < ActiveRecord::Base
end end
   
def to_branch_name def to_branch_name
"#{title.parameterize}-#{iid}" "#{iid}-#{title.parameterize}"
end end
   
def can_be_worked_on?(current_user) def can_be_worked_on?(current_user)
Loading
Loading
Loading
@@ -51,7 +51,7 @@ module MergeRequests
Loading
@@ -51,7 +51,7 @@ module MergeRequests
# be interpreted as the use wants to close that issue on this project # be interpreted as the use wants to close that issue on this project
# Pattern example: 112-fix-mep-mep # Pattern example: 112-fix-mep-mep
# Will lead to appending `Closes #112` to the description # Will lead to appending `Closes #112` to the description
if match = merge_request.source_branch.match(/-(\d+)\z/) if match = merge_request.source_branch.match(/\A(\d+)-/)
iid = match[1] iid = match[1]
closes_issue = "Closes ##{iid}" closes_issue = "Closes ##{iid}"
   
Loading
Loading
Loading
@@ -222,7 +222,7 @@ class SystemNoteService
Loading
@@ -222,7 +222,7 @@ class SystemNoteService
# Called when a branch is created from the 'new branch' button on a issue # Called when a branch is created from the 'new branch' button on a issue
# Example note text: # Example note text:
# #
# "Started branch `issue-branch-button-201`" # "Started branch `201-issue-branch-button`"
def self.new_issue_branch(issue, project, author, branch) def self.new_issue_branch(issue, project, author, branch)
h = Gitlab::Routing.url_helpers h = Gitlab::Routing.url_helpers
link = h.namespace_project_compare_url(project.namespace, project, from: project.default_branch, to: branch) link = h.namespace_project_compare_url(project.namespace, project, from: project.default_branch, to: branch)
Loading
Loading
Loading
@@ -85,7 +85,7 @@ Once you click it, a new branch will be created that diverges from the default
Loading
@@ -85,7 +85,7 @@ Once you click it, a new branch will be created that diverges from the default
branch of your project, by default `master`. The branch name will be based on branch of your project, by default `master`. The branch name will be based on
the title of the issue and as suffix it will have its ID. Thus, the example the title of the issue and as suffix it will have its ID. Thus, the example
screenshot above will yield a branch named screenshot above will yield a branch named
`et-cum-et-sed-expedita-repellat-consequatur-ut-assumenda-numquam-rerum-2`. `2-et-cum-et-sed-expedita-repellat-consequatur-ut-assumenda-numquam-rerum`.
   
After the branch is created, you can edit files in the repository to fix After the branch is created, you can edit files in the repository to fix
the issue. When a merge request is created based on the newly created branch, the issue. When a merge request is created based on the newly created branch,
Loading
Loading
Loading
@@ -191,12 +191,19 @@ describe Issue, models: true do
Loading
@@ -191,12 +191,19 @@ describe Issue, models: true do
end end
   
describe '#related_branches' do describe '#related_branches' do
it "selects the right branches" do it 'selects the right branches' do
allow(subject.project.repository).to receive(:branch_names). allow(subject.project.repository).to receive(:branch_names).
and_return(["mpempe", "#{subject.iid}mepmep", subject.to_branch_name]) and_return(['mpempe', "#{subject.iid}mepmep", subject.to_branch_name])
   
expect(subject.related_branches).to eq([subject.to_branch_name]) expect(subject.related_branches).to eq([subject.to_branch_name])
end end
it 'excludes stable branches from the related branches' do
allow(subject.project.repository).to receive(:branch_names).
and_return(["#{subject.iid}-0-stable"])
expect(subject.related_branches).to eq []
end
end end
   
it_behaves_like 'an editable mentionable' do it_behaves_like 'an editable mentionable' do
Loading
@@ -210,11 +217,11 @@ describe Issue, models: true do
Loading
@@ -210,11 +217,11 @@ describe Issue, models: true do
let(:subject) { create :issue } let(:subject) { create :issue }
end end
   
describe "#to_branch_name" do describe '#to_branch_name' do
let(:issue) { create(:issue, title: 'a' * 30) } let(:issue) { create(:issue, title: 'a' * 30) }
   
it "starts with the issue iid" do it 'starts with the issue iid' do
expect(issue.to_branch_name).to match /-#{issue.iid}\z/ expect(issue.to_branch_name).to match /\A#{issue.iid}-a+\z/
end end
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment