summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-06-19 19:12:17 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-06-19 19:12:17 +0000
commit3b854bee59211a8a1889f3630c5316a71d182c70 (patch)
tree4dd39345641b5be6ccc81b6c7a377b774b92b84e
parent6c6aae07a2371871aaa7f56721101e691804eaa5 (diff)
downloadredmine-3b854bee59211a8a1889f3630c5316a71d182c70.tar.gz
redmine-3b854bee59211a8a1889f3630c5316a71d182c70.zip
Make repository identifier accept underscores (#11192).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9875 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/repository.rb4
-rw-r--r--test/unit/repository_test.rb9
2 files changed, 11 insertions, 2 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 1f8820868..873c22313 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -37,8 +37,8 @@ class Repository < ActiveRecord::Base
validates_presence_of :identifier, :unless => Proc.new { |r| r.is_default? || r.set_as_default? }
validates_uniqueness_of :identifier, :scope => :project_id, :allow_blank => true
validates_exclusion_of :identifier, :in => %w(show entry raw changes annotate diff show stats graph)
- # donwcase letters, digits, dashes but not digits only
- validates_format_of :identifier, :with => /^(?!\d+$)[a-z0-9\-]*$/, :allow_blank => true
+ # donwcase letters, digits, dashes, underscores but not digits only
+ validates_format_of :identifier, :with => /^(?!\d+$)[a-z0-9\-_]*$/, :allow_blank => true
# Checks if the SCM is enabled when creating a repository
validate :repo_create_validation, :on => :create
diff --git a/test/unit/repository_test.rb b/test/unit/repository_test.rb
index 0bd9af4b5..bf17b8884 100644
--- a/test/unit/repository_test.rb
+++ b/test/unit/repository_test.rb
@@ -97,6 +97,15 @@ class RepositoryTest < ActiveSupport::TestCase
assert_equal [repository1, repository2], Project.find(3).repositories.sort
end
+ def test_identifier_should_accept_letters_digits_dashes_and_underscores
+ r = Repository::Subversion.new(
+ :project_id => 3,
+ :identifier => 'svn-123_45',
+ :url => 'file:///svn'
+ )
+ assert r.save
+ end
+
def test_destroy
repository = Repository.find(10)
changesets = repository.changesets.count