add local cache repository for speed purpose (subversion) or for browsing a external repository

for SCM that can handle only local copy (git).


git-svn-id: http://redmine.rubyforge.org/svn/branches/nbc@1899 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Nicolas Chuche
2008-09-22 18:46:46 +00:00
parent 9b94342bc3
commit 89b8bf3dc5
41 changed files with 216 additions and 12 deletions
+13
View File
@@ -21,6 +21,17 @@ class Repository::Git < Repository
attr_protected :root_url
validates_presence_of :url
before_destroy :remove_cache
def init_cache
return unless dir = repositories_cache_directory
# we need to use a cache only if repository isn't local and dir exists
if url[/^(rsync|https?|git|ssh):\/\//]
update_attribute(:cache_path, dir + project.identifier)
update_attribute(:cache, true)
end
end
def scm_adapter
Redmine::Scm::Adapters::GitAdapter
end
@@ -36,6 +47,8 @@ class Repository::Git < Repository
end
def fetch_changesets
create_or_sync_cache if cache
scm_info = scm.info
if scm_info
# latest revision found in database