diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index 03b5967fe..7d815512b 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -19,34 +19,51 @@ require 'SVG/Graph/Bar'
require 'SVG/Graph/BarHorizontal'
require 'digest/sha1'
require 'redmine/scm/adapters/abstract_adapter'
+require 'tempfile'
class ChangesetNotFound < Exception; end
class InvalidRevisionParam < Exception; end
class RepositoriesController < ApplicationController
- layout 'base_projects'
menu_item :repository
menu_item :settings, :only => [:new, :create, :edit, :update, :destroy, :committers]
default_search_scope :changesets
-
- before_filter :find_project_by_project_id, :only => [:new, :create]
+
+ before_filter :find_project_by_project_id, :only => [:new, :create, :newrepo]
before_filter :find_repository, :only => [:edit, :update, :destroy, :committers]
- before_filter :find_project_repository, :except => [:new, :create, :edit, :update, :destroy, :committers]
+ before_filter :find_project_repository, :except => [:new, :create, :newcreate, :edit, :update, :destroy, :committers, :newrepo]
before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue]
- before_filter :authorize
+ before_filter :authorize , :except => [:newrepo,:newcreate]
accept_rss_auth :revisions
+
rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed
-
def new
scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first
@repository = Repository.factory(scm)
@repository.is_default = @project.repository.nil?
@repository.project = @project
end
-
+
+ def newrepo
+ scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first
+ @repository = Repository.factory(scm)
+ @repository.is_default = @project.repository.nil?
+ @repository.project = @project
+ end
+
def create
attrs = pickup_extra_info
+ if(params[:repository]["upassword"])
+ params[:repository]["password"]=params[:repository]["upassword"]
+ if(params[:repository_scm]=="Subversion")
+
+ params[:repository]["url"]='svn://10.0.47.245/'+params[:repository]["identifier"]
+ end
+ if(params[:repository_scm]=="Git")
+ params[:repository]["url"]=params[:repository]["identifier"]+'@10.0.47.245://'+params[:repository]["identifier"]
+ end
+ end
@repository = Repository.factory(params[:repository_scm])
@repository.safe_attributes = params[:repository]
if attrs[:attrs_extra].keys.any?
@@ -54,12 +71,29 @@ class RepositoriesController < ApplicationController
end
@repository.project = @project
if request.post? && @repository.save
+ if(params[:repository]["upassword"]&¶ms[:repository_scm]=="Git")
+ system "htpasswd -mb /home/pdl/redmine-2.3.2-0/apache2/trustie2.passwd #{params[:repository]["identifier"]} #{params[:repository]["upassword"]}"
+ system "git init --bare /home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git"
+ system "mv /home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git/hooks/post-update{.sample,}"
+ system "./home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git/hooks/post-update"
+ }
+ #system "C:/Users/ta/Desktop/modify.bat #{params[:repository]["identifier"]} #{params[:repository]["upassword"]}"
+ # system("mkdir c:/test/svn123")
+ # system("git init --bare c:/test/svn123/#{params[:repository]["identifier"]}")
+
+ end
+ if(params[:repository]["upassword"]&¶ms[:repository_scm]=="Subversion")
+ system("svnadmin create c:/test/#{@project}/#{params[:repository]["identifier"]}")
+ end
redirect_to settings_project_path(@project, :tab => 'repositories')
- else
- render :action => 'new'
+ else if(params[:repository]["upassword"])
+ render :action => 'newrepo'
+ else
+ render :action => 'new'
+ end
end
end
-
+
def edit
end
@@ -370,7 +404,7 @@ class RepositoriesController < ApplicationController
graph = SVG::Graph::Bar.new(
:height => 300,
- :width => 650,
+ :width => 800,
:fields => fields.reverse,
:stack => :side,
:scale_integers => true,
@@ -413,7 +447,7 @@ class RepositoriesController < ApplicationController
graph = SVG::Graph::BarHorizontal.new(
:height => 400,
- :width => 650,
+ :width => 800,
:fields => fields,
:stack => :side,
:scale_integers => true,
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 6cc7fd1b8..0e005690e 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -403,7 +403,8 @@ class UsersController < ApplicationController
def user_watchlist
end
###add by huang
- def user_fanslist
+ def user_fanslist
+
end
private
diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb
index 75f1421e1..c06d4d65f 100644
--- a/app/controllers/welcome_controller.rb
+++ b/app/controllers/welcome_controller.rb
@@ -17,7 +17,6 @@
class WelcomeController < ApplicationController
caches_action :robots
-
def index
@news = News.latest User.current
diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb
index ae45d2a58..e100b1317 100644
--- a/app/helpers/repositories_helper.rb
+++ b/app/helpers/repositories_helper.rb
@@ -126,7 +126,15 @@ module RepositoriesHelper
send(method, form, repository)
end
end
-
+ # by xianbo
+ def repository_field_tags_new(form, repository)
+ method = repository.class.name.demodulize.underscore + "_field_tags_new"
+ if repository.is_a?(Repository) &&
+ respond_to?(method) && method != 'repository_field_tags_new'
+ send(method, form, repository)
+ end
+ end
+
def scm_select_tag(repository)
scm_options = [["--- #{l(:actionview_instancetag_blank_option)} ---", '']]
Redmine::Scm::Base.all.each do |scm|
@@ -154,37 +162,40 @@ module RepositoriesHelper
:disabled => !repository.safe_attribute?('url')) +
'
'.html_safe +
'(file:///, http://, https://, svn://, svn+[tunnelscheme]://)') +
- content_tag('p', form.text_field(:login, :size => 30)) +
+ content_tag('p', form.text_field(:login, :size => 30))+
content_tag('p', form.password_field(
:password, :size => 30, :name => 'ignore',
:value => ((repository.new_record? || repository.password.blank?) ? '' : ('x'*15)),
:onfocus => "this.value=''; this.name='repository[password]';",
:onchange => "this.name='repository[password]';"))
end
+ # by xianbo
+ def subversion_field_tags_new(form, repository)
- def darcs_field_tags(form, repository)
- content_tag('p', form.text_field(
- :url, :label => l(:field_path_to_repository),
- :size => 60, :required => true,
- :disabled => !repository.safe_attribute?('url'))) +
- content_tag('p', form.select(
- :log_encoding, [nil] + Setting::ENCODINGS,
- :label => l(:field_commit_logs_encoding), :required => true))
end
+ # def darcs_field_tags(form, repository)
+ # content_tag('p', form.text_field(
+ # :url, :label => l(:field_path_to_repository),
+ # :size => 60, :required => true,
+ # :disabled => !repository.safe_attribute?('url'))) +
+ # content_tag('p', form.select(
+ # :log_encoding, [nil] + Setting::ENCODINGS,
+ # :label => l(:field_commit_logs_encoding), :required => true))
+ # end
- def mercurial_field_tags(form, repository)
- content_tag('p', form.text_field(
- :url, :label => l(:field_path_to_repository),
- :size => 60, :required => true,
- :disabled => !repository.safe_attribute?('url')
- ) +
- '
'.html_safe + l(:text_mercurial_repository_note)) +
- content_tag('p', form.select(
- :path_encoding, [nil] + Setting::ENCODINGS,
- :label => l(:field_scm_path_encoding)
- ) +
- '
'.html_safe + l(:text_scm_path_encoding_note))
- end
+ # def mercurial_field_tags(form, repository)
+ # content_tag('p', form.text_field(
+ # :url, :label => l(:field_path_to_repository),
+ # :size => 60, :required => true,
+ # :disabled => !repository.safe_attribute?('url')
+ # ) +
+ # '
'.html_safe + l(:text_mercurial_repository_note)) +
+ # content_tag('p', form.select(
+ # :path_encoding, [nil] + Setting::ENCODINGS,
+ # :label => l(:field_scm_path_encoding)
+ # ) +
+ # '
'.html_safe + l(:text_scm_path_encoding_note))
+ # end
def git_field_tags(form, repository)
content_tag('p', form.text_field(
@@ -204,37 +215,43 @@ module RepositoriesHelper
:label => l(:label_git_report_last_commit)
))
end
-
- def cvs_field_tags(form, repository)
- content_tag('p', form.text_field(
- :root_url,
- :label => l(:field_cvsroot),
- :size => 60, :required => true,
- :disabled => !repository.safe_attribute?('root_url'))) +
- content_tag('p', form.text_field(
- :url,
- :label => l(:field_cvs_module),
- :size => 30, :required => true,
- :disabled => !repository.safe_attribute?('url'))) +
- content_tag('p', form.select(
- :log_encoding, [nil] + Setting::ENCODINGS,
- :label => l(:field_commit_logs_encoding), :required => true)) +
- content_tag('p', form.select(
- :path_encoding, [nil] + Setting::ENCODINGS,
- :label => l(:field_scm_path_encoding)
- ) +
- '
'.html_safe + l(:text_scm_path_encoding_note))
+# by xianbo
+ def git_field_tags_new(form, repository)
+ content_tag('p', form.check_box(
+ :extra_report_last_commit,
+ :label => l(:label_git_report_last_commit)
+ ))
end
+ # def cvs_field_tags(form, repository)
+ # content_tag('p', form.text_field(
+ # :root_url,
+ # :label => l(:field_cvsroot),
+ # :size => 60, :required => true,
+ # :disabled => !repository.safe_attribute?('root_url'))) +
+ # content_tag('p', form.text_field(
+ # :url,
+ # :label => l(:field_cvs_module),
+ # :size => 30, :required => true,
+ # :disabled => !repository.safe_attribute?('url'))) +
+ # content_tag('p', form.select(
+ # :log_encoding, [nil] + Setting::ENCODINGS,
+ # :label => l(:field_commit_logs_encoding), :required => true)) +
+ # content_tag('p', form.select(
+ # :path_encoding, [nil] + Setting::ENCODINGS,
+ # :label => l(:field_scm_path_encoding)
+ # ) +
+ # '
'.html_safe + l(:text_scm_path_encoding_note))
+ # end
- def bazaar_field_tags(form, repository)
- content_tag('p', form.text_field(
- :url, :label => l(:field_path_to_repository),
- :size => 60, :required => true,
- :disabled => !repository.safe_attribute?('url'))) +
- content_tag('p', form.select(
- :log_encoding, [nil] + Setting::ENCODINGS,
- :label => l(:field_commit_logs_encoding), :required => true))
- end
+ # def bazaar_field_tags(form, repository)
+ # content_tag('p', form.text_field(
+ # :url, :label => l(:field_path_to_repository),
+ # :size => 60, :required => true,
+ # :disabled => !repository.safe_attribute?('url'))) +
+ # content_tag('p', form.select(
+ # :log_encoding, [nil] + Setting::ENCODINGS,
+ # :label => l(:field_commit_logs_encoding), :required => true))
+ # end
def filesystem_field_tags(form, repository)
content_tag('p', form.text_field(
@@ -276,7 +293,7 @@ module RepositoriesHelper
space ||= index_head(0, commits.first, commits_by_scmid)
return commits_by_scmid, space
end
-
+
def index_head(space, commit, commits_by_scmid)
stack = [[space, commits_by_scmid[commit.scmid]]]
max_space = space
@@ -295,3 +312,5 @@ module RepositoriesHelper
max_space
end
end
+
+
diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb
index 704597c29..26abb6600 100644
--- a/app/views/layouts/base_projects.html.erb
+++ b/app/views/layouts/base_projects.html.erb
@@ -62,9 +62,9 @@