diff --git app/controllers/#download_svn_revision_controller.rb# app/controllers/#download_svn_revision_controller.rb#
new file mode 100644
index 0000000..5506007
--- /dev/null
+++ app/controllers/#download_svn_revision_controller.rb#
@@ -0,0 +1,87 @@
+class DownloadSvnRevisionController < ApplicationController
+  unloadable
+
+  before_filter :require_login
+  before_filter :set_repository_variable
+  before_filter :set_project_variable
+  before_filter :can_download_svn_revision
+
+  #helper :git_hosting
+  def user_allowed_to_svn(permission, project)
+    if project.active?
+      return User.current.allowed_to?(permission, project)
+    else
+      return User.current.allowed_to?(permission, nil, :global => true)
+    end
+  end
+
+
+  def index
+    commit = nil
+    format = params[:download_format]
+
+    if !params[:rev]
+      rev = "master"
+    else
+      rev = params[:rev]
+    end
+
+    if(
+    project_name = @repository.name.to_s.parameterize.to_s
+
+    cmd_args = ""
+
+    case format
+      when 'tar' then
+        extension = 'tar'
+        content_type = 'application/x-tar'
+        cmd_args << "tar -cvf #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+      when 'tar.gz' then
+        extension = 'tar.gz'
+        content_type = 'application/x-gzip'
+        cmd_args << "tar -zcvf #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+      when 'zip' then
+        extension = 'zip'
+        content_type = 'application/x-zip'
+        cmd_args << "zip -r #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+    end
+
+    #begin
+      #system("echo '#{@repository.url} #{project_name}-#{rev}.#{extension}' > log/logging.log")
+      system("svn export #{@repository.url} #{project_name}-#{rev}; #{cmd_args}")
+      content = "#{project_name}-#{rev}.#{extension}"
+    #rescue => e
+      #flash.now[:error] = l(:git_archive_timeout, :timeout => e.message)
+     # render_404
+      #return
+    #end
+    if(File.file?("#{project_name}-#{rev}.#{extension}"))
+      send_file(content, :filename => "#{project_name}-#{rev}.#{extension}", :type => content_type)
+    end
+ end
+
+
+  private
+
+
+  def can_download_svn_revision
+    render_403 unless user_allowed_to_svn(:download_svn_revision, @project)
+  end
+
+
+  def set_repository_variable
+    @repository = Repository.find_by_id(params[:repository_id])
+    if @repository.nil?
+      render_404
+    end
+  end
+
+
+  def set_project_variable
+    @project = @repository.project
+    if @project.nil?
+      render_404
+    end
+  end
+
+end
diff --git app/controllers/download_svn_revision_controller.rb app/controllers/download_svn_revision_controller.rb
new file mode 100644
index 0000000..4c65e3f
--- /dev/null
+++ app/controllers/download_svn_revision_controller.rb
@@ -0,0 +1,87 @@
+class DownloadSvnRevisionController < ApplicationController
+  unloadable
+
+  before_filter :require_login
+  before_filter :set_repository_variable
+  before_filter :set_project_variable
+  before_filter :can_download_svn_revision
+
+  #helper :git_hosting
+  def user_allowed_to_svn(permission, project)
+    if project.active?
+      return User.current.allowed_to?(permission, project)
+    else
+      return User.current.allowed_to?(permission, nil, :global => true)
+    end
+  end
+
+
+  def index
+    commit = nil
+    format = params[:download_format]
+
+    if !params[:rev]
+      rev = "master"
+    else
+      rev = params[:rev]
+    end
+
+
+    project_name = @repository.name.to_s.parameterize.to_s
+
+    cmd_args = ""
+
+    case format
+      when 'tar' then
+        extension = 'tar'
+        content_type = 'application/x-tar'
+        cmd_args << "tar -cvf #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+      when 'tar.gz' then
+        extension = 'tar.gz'
+        content_type = 'application/x-gzip'
+        cmd_args << "tar -zcvf #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+      when 'zip' then
+        extension = 'zip'
+        content_type = 'application/x-zip'
+        cmd_args << "zip -r #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+    end
+
+    #begin
+      #system("echo '#{@repository.url} #{project_name}-#{rev}.#{extension}' > log/logging.log")
+      system("svn export #{@repository.url} #{project_name}-#{rev}; #{cmd_args}")
+      content = "#{project_name}-#{rev}.#{extension}"
+    #rescue => e
+      #flash.now[:error] = l(:git_archive_timeout, :timeout => e.message)
+     # render_404
+      #return
+    #end
+    if(File.file?("#{project_name}-#{rev}.#{extension}"))
+      send_file(content, :filename => "#{project_name}-#{rev}.#{extension}", :type => content_type)
+    end
+ end
+
+
+  private
+
+
+  def can_download_svn_revision
+    render_403 unless user_allowed_to_svn(:download_svn_revision, @project)
+  end
+
+
+  def set_repository_variable
+    @repository = Repository.find_by_id(params[:repository_id])
+    if @repository.nil?
+      render_404
+    end
+  end
+
+
+  def set_project_variable
+    @project = @repository.project
+    if @project.nil?
+      render_404
+    end
+  end
+
+end
diff --git app/controllers/download_svn_revision_controller.rb~ app/controllers/download_svn_revision_controller.rb~
new file mode 100644
index 0000000..7527cac
--- /dev/null
+++ app/controllers/download_svn_revision_controller.rb~
@@ -0,0 +1,87 @@
+class DownloadSvnRevisionController < ApplicationController
+  unloadable
+
+  before_filter :require_login
+  before_filter :set_repository_variable
+  before_filter :set_project_variable
+  before_filter :can_download_svn_revision
+
+  #helper :git_hosting
+  def user_allowed_to(permission, project)
+    if project.active?
+      return User.current.allowed_to?(permission, project)
+    else
+      return User.current.allowed_to?(permission, nil, :global => true)
+    end
+  end
+
+
+  def index
+    commit = nil
+    format = params[:download_format]
+
+    if !params[:rev]
+      rev = "master"
+    else
+      rev = params[:rev]
+    end
+
+
+    project_name = @repository.name.to_s.parameterize.to_s
+
+    cmd_args = ""
+
+    case format
+      when 'tar' then
+        extension = 'tar'
+        content_type = 'application/x-tar'
+        cmd_args << "tar -cvf #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+      when 'tar.gz' then
+        extension = 'tar.gz'
+        content_type = 'application/x-gzip'
+        cmd_args << "tar -zcvf #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+      when 'zip' then
+        extension = 'zip'
+        content_type = 'application/x-zip'
+        cmd_args << "zip -r #{project_name}-#{rev}.#{extension} #{project_name}-#{rev}"
+    end
+
+    #begin
+      #system("echo '#{@repository.url} #{project_name}-#{rev}.#{extension}' > log/logging.log")
+      system("svn export #{@repository.url} #{project_name}-#{rev}; #{cmd_args}")
+      content = "#{project_name}-#{rev}.#{extension}"
+    #rescue => e
+      #flash.now[:error] = l(:git_archive_timeout, :timeout => e.message)
+     # render_404
+      #return
+    #end
+    if(File.file?("#{project_name}-#{rev}.#{extension}"))
+      send_file(content, :filename => "#{project_name}-#{rev}.#{extension}", :type => content_type)
+    end
+ end
+
+
+  private
+
+
+  def can_download_svn_revision
+    render_403 unless view_context.user_allowed_to(:download_svn_revision, @project)
+  end
+
+
+  def set_repository_variable
+    @repository = Repository.find_by_id(params[:repository_id])
+    if @repository.nil?
+      render_404
+    end
+  end
+
+
+  def set_project_variable
+    @project = @repository.project
+    if @project.nil?
+      render_404
+    end
+  end
+
+end
diff --git app/views/repositories/#_download_revision.erb# app/views/repositories/#_download_revision.erb#
new file mode 100644
index 0000000..213ee30
--- /dev/null
+++ app/views/repositories/#_download_revision.erb#
@@ -0,0 +1,72 @@
+<% if Repository.respond_to?(:factory_with_git_hosting) %>
+ <% if @repository.is_a?(Repository::Git) && RedmineGitolite::ConfigRedmine.get_setting(:download_revision_enabled, true) %>
+  <% if (@project.active? && User.current.allowed_to?(:download_git_revision, @project)) || (!@project.active? &&  User.current.allowed_to?(:download_git_revision, nil, :global => true)) %>
+
+    <div style="clear: both;"></div>
+
+    <div id="git_hosting_download_buttons">
+      <ul>
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'tar'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar.gz'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'tar.gz'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.zip'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'zip'),
+                      :class => 'button' %>
+        </li>
+      </ul>
+    </div>
+
+    <% content_for :header_tags do %>
+      <%= stylesheet_link_tag 'font_awesome', :plugin => 'redmine_git_hosting' %>
+    <% end %>
+
+  <% end %>
+ <% end %>
+<% end %>
+
+
+ <% if @repository.is_a?(Repository::Subversion)%>
+  <% if (@project.active? && User.current.allowed_to?(:download_svn_revision, @project)) || (!@project.active? &&  User.current.allowed_to?(:download_svn_revision, nil, :global => true)) %>
+
+    <div style="clear: both;"></div>
+
+    <div id="svn_hosting_download_buttons">
+      <ul>
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'tar'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar.gz'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'tar.gz'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.zip'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'zip'),
+                      :class => 'button' %>
+        </li>
+      </ul>
+    </div>
+  <% if Repository.respond_to?(:factory_with_git_hosting) %>
+    <% content_for :header_tags do %>
+      <%= stylesheet_link_tag 'font_awesome', :plugin => 'redmine_git_hosting' %>
+    <% end %>
+  <% end %>
+
+  <% end %>
+ <% end %>
+
diff --git app/views/repositories/_download_revision.erb app/views/repositories/_download_revision.erb
new file mode 100644
index 0000000..213ee30
--- /dev/null
+++ app/views/repositories/_download_revision.erb
@@ -0,0 +1,72 @@
+<% if Repository.respond_to?(:factory_with_git_hosting) %>
+ <% if @repository.is_a?(Repository::Git) && RedmineGitolite::ConfigRedmine.get_setting(:download_revision_enabled, true) %>
+  <% if (@project.active? && User.current.allowed_to?(:download_git_revision, @project)) || (!@project.active? &&  User.current.allowed_to?(:download_git_revision, nil, :global => true)) %>
+
+    <div style="clear: both;"></div>
+
+    <div id="git_hosting_download_buttons">
+      <ul>
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'tar'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar.gz'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'tar.gz'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.zip'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'zip'),
+                      :class => 'button' %>
+        </li>
+      </ul>
+    </div>
+
+    <% content_for :header_tags do %>
+      <%= stylesheet_link_tag 'font_awesome', :plugin => 'redmine_git_hosting' %>
+    <% end %>
+
+  <% end %>
+ <% end %>
+<% end %>
+
+
+ <% if @repository.is_a?(Repository::Subversion)%>
+  <% if (@project.active? && User.current.allowed_to?(:download_svn_revision, @project)) || (!@project.active? &&  User.current.allowed_to?(:download_svn_revision, nil, :global => true)) %>
+
+    <div style="clear: both;"></div>
+
+    <div id="svn_hosting_download_buttons">
+      <ul>
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'tar'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar.gz'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'tar.gz'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.zip'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'zip'),
+                      :class => 'button' %>
+        </li>
+      </ul>
+    </div>
+  <% if Repository.respond_to?(:factory_with_git_hosting) %>
+    <% content_for :header_tags do %>
+      <%= stylesheet_link_tag 'font_awesome', :plugin => 'redmine_git_hosting' %>
+    <% end %>
+  <% end %>
+
+  <% end %>
+ <% end %>
+
diff --git app/views/repositories/_download_revision.erb~ app/views/repositories/_download_revision.erb~
new file mode 100644
index 0000000..a3bcde9
--- /dev/null
+++ app/views/repositories/_download_revision.erb~
@@ -0,0 +1,71 @@
+<% if Repository.respond_to?(:factory_with_git_hosting) %>
+ <% if @repository.is_a?(Repository::Git) && RedmineGitolite::ConfigRedmine.get_setting(:download_revision_enabled, true) %>
+  <% if (@project.active? && User.current.allowed_to?(:download_git_revision, @project)) || (!@project.active? &&  User.current.allowed_to?(:download_git_revision, nil, :global => true)) %>
+
+    <div style="clear: both;"></div>
+
+    <div id="git_hosting_download_buttons">
+      <ul>
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'tar'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar.gz'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'tar.gz'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.zip'),
+                      download_git_revision_path(@repository.id, :rev => @rev, :download_format => 'zip'),
+                      :class => 'button' %>
+        </li>
+      </ul>
+    </div>
+
+    <% content_for :header_tags do %>
+      <%= stylesheet_link_tag 'font_awesome', :plugin => 'redmine_git_hosting' %>
+    <% end %>
+
+  <% end %>
+ <% end %>
+<% end %>
+
+
+ <% if @repository.is_a?(Repository::Subversion)%>
+  <% if (@project.active? && User.current.allowed_to?(:download_svn_revision, @project)) || (!@project.active? &&  User.current.allowed_to?(:download_svn_revision, nil, :global => true)) %>
+
+    <div style="clear: both;"></div>
+
+    <div id="svn_hosting_download_buttons">
+      <ul>
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'tar'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.tar.gz'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'tar.gz'),
+                      :class => 'button' %>
+        </li>
+
+        <li>
+          <%= link_to "<i class=\"fa fa-download\"></i>".html_safe + l(:label_download_format, :archive_format => '.zip'),
+                      download_svn_revision_path(@repository.id, :rev => @rev, :download_format => 'zip'),
+                      :class => 'button' %>
+        </li>
+      </ul>
+    </div>
+
+    <% content_for :header_tags do %>
+      <%= stylesheet_link_tag 'font_awesome', :plugin => 'redmine_git_hosting' %>
+    <% end %>
+
+  <% end %>
+ <% end %>
+
diff --git app/views/repositories/_sidebar.html.erb app/views/repositories/_sidebar.html.erb
new file mode 100644
index 0000000..46e80f7
--- /dev/null
+++ app/views/repositories/_sidebar.html.erb
@@ -0,0 +1,26 @@
+<% if Repository.respond_to?(:factory_with_git_hosting) %>
+<%= javascript_tag do %>
+  $(document).ready(function() {
+    $('#sidebar p').remove();
+  });
+<% end %>
+
+
+
+<ul class="repository git">
+  <% @repositories.sort.each do |repo| %>
+      <li class="repository git"><%= link_to h(repo.name), {:controller => 'repositories', :action => 'show', :id => @project, :repository_id => repo.identifier_param, :rev => nil, :path => nil},
+                                    :class => [ 'repository', (repo == @repository ? 'selected' : ''), @repository.type.split('::')[1].downcase ].join(' ') %>
+      </li>
+  <% end %>
+</ul>
+
+<% if @repository.is_a?(Repository::Git) && RedmineGitolite::Config.get_setting(:show_repositories_url, true) %>
+  <div class="git_hosting_urls">
+    <h3><%= l(:label_repository_access_url) %></h3>
+    <%= render :partial => 'common/git_urls', :locals => {:repository => @repository} %>
+  </div>
+<% end %>
+<% end %>
+
+<%= render :partial => 'repositories/download_revision' %>
diff --git app/views/repositories/_sidebar.html.erb~ app/views/repositories/_sidebar.html.erb~
new file mode 100644
index 0000000..ad3d7bd
--- /dev/null
+++ app/views/repositories/_sidebar.html.erb~
@@ -0,0 +1,24 @@
+<%= javascript_tag do %>
+  $(document).ready(function() {
+    $('#sidebar p').remove();
+  });
+<% end %>
+
+
+
+<ul class="repository git">
+  <% @repositories.sort.each do |repo| %>
+      <li class="repository git"><%= link_to h(repo.name), {:controller => 'repositories', :action => 'show', :id => @project, :repository_id => repo.identifier_param, :rev => nil, :path => nil},
+                                    :class => [ 'repository', (repo == @repository ? 'selected' : ''), @repository.type.split('::')[1].downcase ].join(' ') %>
+      </li>
+  <% end %>
+</ul>
+
+<% if @repository.is_a?(Repository::Git) && RedmineGitolite::Config.get_setting(:show_repositories_url, true) %>
+  <div class="git_hosting_urls">
+    <h3><%= l(:label_repository_access_url) %></h3>
+    <%= render :partial => 'common/git_urls', :locals => {:repository => @repository} %>
+  </div>
+<% end %>
+
+<%= render :partial => 'repositories/download_revision' %>
diff --git config/routes.rb config/routes.rb
new file mode 100644
index 0000000..a05670d
--- /dev/null
+++ config/routes.rb
@@ -0,0 +1,3 @@
+match 'repositories/:repository_id/download_svn_revision', :to  => 'download_svn_revision#index',
+                                                         :via => [:get],
+                                                         :as  => 'download_svn_revision'
diff --git init.rb init.rb
index eac6f8a..5888eed 100644
--- init.rb
+++ init.rb
@@ -17,6 +17,7 @@ require_dependency 'scm_hook'
 
 require_dependency File.expand_path(File.join(File.dirname(__FILE__), 'app/models/repository_observer'))
 
+
 Rails.logger.info 'Starting SCM Creator Plugin for Redmine'
 
 ActiveRecord::Base.observers << RepositoryObserver
@@ -42,4 +43,8 @@ Redmine::Plugin.register :redmine_scm do
     description 'Allows creating Subversion, Git, Mercurial, Bazaar and Github repositories within Redmine.'
     url         'http://projects.andriylesyuk.com/projects/scm-creator'
     version     '0.5.0b'
+    project_module :repository do
+       permission :download_svn_revision,               :download_svn_revision => :index
+    end
+
 end
diff --git lib/creator/#subversion_creator.rb# lib/creator/#subversion_creator.rb#
new file mode 100644
index 0000000..cfea726
--- /dev/null
+++ lib/creator/#subversion_creator.rb#
@@ -0,0 +1,66 @@
+eclass SubversionCreator < SCMCreator
+
+    class << self
+
+        def scm_id
+            'svn'
+        end
+
+        def enabled?
+            if options
+                if options['path']
+                    if !options['svnadmin'] || File.executable?(options['svnadmin'])
+                        return true
+                    else
+                        Rails.logger.warn "'#{options['svnadmin']}' cannot be found/executed - ignoring '#{scm_id}"
+                    end
+                else
+                    Rails.logger.warn "missing path for '#{scm_id}'"
+                end
+            end
+
+            false
+        end
+
+        def access_url(path, repository = nil)
+            if options['append']
+                access_root_url(path, repository) + '/' + options['append']
+            else
+                access_root_url(path, repository)
+            end
+        end
+
+        def access_root_url(path, repository = nil)
+            'file://' + (Redmine::Platform.mswin? ? '/' + path.gsub(%r{\\}, "/") : path)
+        end
+
+        def external_url(repository, regexp = %r{^(?:file|https?|svn(?:\+[a-z]+)?)://})
+            super
+        end
+
+        def repository_name(path)
+            base = Redmine::Platform.mswin? ? '/' + options['path'].gsub(%r{\\}, "/") : options['path']
+            matches = Regexp.new("^file://#{Regexp.escape(base)}/([^/]+)/?$").match(path)
+            matches ? matches[1] : nil
+        end
+
+        def repository_format
+            path = Redmine::Platform.mswin? ? '/' + options['path'].gsub(%r{\\}, "/") : options['path']
+            "file://#{path}/<#{l(:label_repository_format)}>/"
+        end
+
+        def create_repository(path, repository = nil)
+            args = [ svnadmin_command, 'create', path ]
+            append_options(args)
+            system(*args)
+        end
+
+    private
+
+        def svnadmin_command
+            options['svnadmin'] || 'svnadmin'
+        end
+
+    end
+
+end
