]> source.dussan.org Git - redmine.git/commitdiff
Adds SCM vendor argument (eg. 'Subversion') to repository_created API method.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 13 Sep 2008 11:03:11 +0000 (11:03 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 13 Sep 2008 11:03:11 +0000 (11:03 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/branches/nbc@1806 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/apis/sys_api.rb
app/controllers/sys_controller.rb
extra/svn/reposman.rb
test/functional/sys_api_test.rb

index 65c81647e3379e583f4c843606a14b64c0eb098a..fcee616b511499325fc13e4f6e7c6cbaf794d525 100644 (file)
@@ -28,6 +28,6 @@ class SysApi < ActionWebService::API::Base
              :expects => [],
              :returns => [[AWSProjectWithRepository]]
   api_method :repository_created,
-             :expects => [:string, :string],
+             :expects => [:string, :string, :string],
              :returns => [:int]
 end
index 395683886d4c919de375d4eb5109435126af5d59..8aff3bd15a35e23089548d1b7251c9aeb5acbe3b 100644 (file)
@@ -28,13 +28,12 @@ class SysController < ActionController::Base
   end
 
   # Registers a repository for the given project identifier
-  # (Subversion specific)
-  def repository_created(identifier, url)
+  def repository_created(identifier, vendor, url)
     project = Project.find_by_identifier(identifier)
     # Do not create the repository if the project has already one
     return 0 unless project && project.repository.nil?
     logger.debug "Repository for #{project.name} was created"
-    repository = Repository.factory('Subversion', :project => project, :url => url)
+    repository = Repository.factory(vendor, :project => project, :url => url)
     repository.save
     repository.id || 0
   end
index 89215d047b8423898d78cd4f50949b22fa209fac..21af335841ff6f29b01454eafe8514ccdf1b2cd2 100755 (executable)
@@ -92,6 +92,7 @@ $svn_url      = false
 $test         = false
 $command      = "svnadmin create"
 $force        = false
+$repository_vendor = 'Subversion'
 
 def log(text,level=0, exit=false)
   return if $quiet or level > $verbose
@@ -240,7 +241,7 @@ projects.each do |project|
     end
 
     if $svn_url
-      ret = soap.RepositoryCreated project.identifier, "#{$svn_url}#{project.identifier}"
+      ret = soap.RepositoryCreated project.identifier, $repository_vendor, "#{$svn_url}#{project.identifier}"
       if ret > 0
         log("\trepository #{repos_path} registered in Redmine with url #{$svn_url}#{project.identifier}");
       else
index 232fc7614afb64401bfd6f5d0afdacef5abc5b4f..48ed780d0f096edb44b18944b3401388961843bb 100644 (file)
@@ -41,8 +41,10 @@ class SysControllerTest < Test::Unit::TestCase
   def test_repository_created
     project = Project.find(3)
     assert_nil project.repository
-    assert invoke(:repository_created, project.identifier, 'http://localhost/svn')
+    assert invoke(:repository_created, project.identifier, 'Subversion', 'http://localhost/svn')
     project.reload
     assert_not_nil project.repository
+    assert project.repository.is_a?(Repository::Subversion)
+    assert_equal 'http://localhost/svn', project.repository.url
   end
 end