OSDN Git Service

copy repository_template at project creation
authorAkihiro Ono <akihiro.ase@gmail.com>
Sun, 2 Oct 2011 14:55:15 +0000 (23:55 +0900)
committerAkihiro Ono <akihiro.ase@gmail.com>
Sun, 2 Oct 2011 14:55:15 +0000 (23:55 +0900)
vendor/plugins/redmine_le/lib/redmine_le/project_patch.rb

index 1ab50a2..4764092 100644 (file)
@@ -3,9 +3,9 @@ require 'find'
 \r
 module RedmineLe\r
   SVN_DIR = File.join(HOME, "subversion/repos")\r
-  SVN_TEMP = File.join(HOME, "subversion/temp")\r
+  SVN_TEMPLATE = SVN_DIR + "/repository_template"\r
   SVN_URL = "http://localhost:#{HTTP_PORT}/svn"\r
-  SVN_FILE = "file:///" + SVN_DIR.sub(/^\//, "")\r
+\r
 \r
   module ProjectPatch\r
     def self.included(base)\r
@@ -36,43 +36,14 @@ module RedmineLe
         @repository_url ||= RedmineLe::SVN_URL + "/" + identifier\r
       end\r
 \r
-      def local_repository_url\r
-        @local_repository_url ||= RedmineLe::SVN_FILE + "/" + identifier\r
-      end\r
-\r
       def hook_config\r
         @hook_config ||= HookConfig.new(self)\r
       end\r
 \r
       def setup_repository\r
-        begin\r
-          raise unless repository_available?\r
-          unless File.directory?(repository_path)\r
-            raise unless system(%Q[svnadmin create "#{repository_path}"])\r
-\r
-            template_path = RedmineLe::SVN_FILE + "/repository_template"\r
-            target_path = RedmineLe::SVN_TEMP + "/" + identifier\r
-\r
-            FileUtils.rm_rf(target_path)\r
-            system(%Q[svn checkout "#{local_repository_url}" "#{target_path}"])\r
-            Dir.chdir(target_path) {\r
-              system(%Q[svn export --force "#{template_path}" .])\r
-\r
-              Find.find(".") {|f|\r
-                next if f == "."\r
-                name = File.basename(f)\r
-                Find.prune if name == ".svn"\r
-                if name == ".svnignore"\r
-                  system(%Q[svn propset svn:ignore -F "#{f}" "#{File.dirname(f)}"])\r
-                else\r
-                  system(%Q[svn add --depth=empty "#{f}"])\r
-                end\r
-              }\r
-              system(%Q[svn commit -m "Initial repository layout"])\r
-            }\r
-          end\r
-        rescue\r
-          raise "Cannot setup repository" \r
+        unless File.directory?(repository_path)\r
+          target = RedmineLe::SVN_DIR + "/" + identifier\r
+          FileUtils.cp_r(RedmineLe::SVN_TEMPLATE, target)\r
         end\r
 \r
         self.repository = Repository::Subversion.new(\r
@@ -81,6 +52,7 @@ module RedmineLe
           :login => RedmineLeSetting.admin_account,\r
           :password => RedmineLeSetting.admin_password\r
         )\r
+        Repository.fetch_changesets\r
 \r
         %w[pre-commit.bat post-commit.bat].each {|filename|\r
           File.open(repository_path + "/hooks/#{filename}", "w") {|f|\r