Commit 0385cd5a authored by Zeger-Jan van de Weg's avatar Zeger-Jan van de Weg

Start with iid on branch creation

parent c0678f2d
...@@ -106,7 +106,7 @@ class Issue < ActiveRecord::Base ...@@ -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
...@@ -151,7 +151,7 @@ class Issue < ActiveRecord::Base ...@@ -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)
......
...@@ -51,7 +51,7 @@ module MergeRequests ...@@ -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}"
......
...@@ -222,7 +222,7 @@ class SystemNoteService ...@@ -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)
......
...@@ -85,7 +85,7 @@ Once you click it, a new branch will be created that diverges from the default ...@@ -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,
......
...@@ -191,12 +191,19 @@ describe Issue, models: true do ...@@ -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
...@@ -210,11 +217,11 @@ describe Issue, models: true do ...@@ -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
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