Commit 64776ab2 authored by Rémy Coutable's avatar Rémy Coutable

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
......@@ -106,7 +106,7 @@ class Issue < ActiveRecord::Base
def related_branches
project.repository.branch_names.select do |branch|
branch.end_with?("-#{iid}")
branch =~ /\A#{iid}-(?!\d+-stable)/i
end
end
......@@ -151,7 +151,7 @@ class Issue < ActiveRecord::Base
end
def to_branch_name
"#{title.parameterize}-#{iid}"
"#{iid}-#{title.parameterize}"
end
def can_be_worked_on?(current_user)
......
......@@ -51,7 +51,7 @@ module MergeRequests
# be interpreted as the use wants to close that issue on this project
# Pattern example: 112-fix-mep-mep
# 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]
closes_issue = "Closes ##{iid}"
......
......@@ -222,7 +222,7 @@ class SystemNoteService
# Called when a branch is created from the 'new branch' button on a issue
# Example note text:
#
# "Started branch `issue-branch-button-201`"
# "Started branch `201-issue-branch-button`"
def self.new_issue_branch(issue, project, author, branch)
h = Gitlab::Routing.url_helpers
link = h.namespace_project_compare_url(project.namespace, project, from: project.default_branch, to: branch)
......
......@@ -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
the title of the issue and as suffix it will have its ID. Thus, the example
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
the issue. When a merge request is created based on the newly created branch,
......
......@@ -191,12 +191,19 @@ describe Issue, models: true do
end
describe '#related_branches' do
it "selects the right branches" do
it 'selects the right branches' do
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])
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
it_behaves_like 'an editable mentionable' do
......@@ -210,11 +217,11 @@ describe Issue, models: true do
let(:subject) { create :issue }
end
describe "#to_branch_name" do
describe '#to_branch_name' do
let(:issue) { create(:issue, title: 'a' * 30) }
it "starts with the issue iid" do
expect(issue.to_branch_name).to match /-#{issue.iid}\z/
it 'starts with the issue iid' do
expect(issue.to_branch_name).to match /\A#{issue.iid}-a+\z/
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment