修改了版本库
This commit is contained in:
parent
b0c813df69
commit
57991b727a
|
@ -43,6 +43,7 @@ class RepositoriesController < ApplicationController
|
||||||
@repository = Repository.factory(scm)
|
@repository = Repository.factory(scm)
|
||||||
@repository.is_default = @project.repository.nil?
|
@repository.is_default = @project.repository.nil?
|
||||||
@repository.project = @project
|
@repository.project = @project
|
||||||
|
render :layout => 'base_projects'
|
||||||
end
|
end
|
||||||
|
|
||||||
def newrepo
|
def newrepo
|
||||||
|
@ -50,46 +51,72 @@ class RepositoriesController < ApplicationController
|
||||||
@repository = Repository.factory(scm)
|
@repository = Repository.factory(scm)
|
||||||
@repository.is_default = @project.repository.nil?
|
@repository.is_default = @project.repository.nil?
|
||||||
@repository.project = @project
|
@repository.project = @project
|
||||||
|
render :layout => 'base_projects'
|
||||||
|
end
|
||||||
|
|
||||||
|
def fork
|
||||||
|
# system "htpasswd -mb "+@root_path+"user.passwd "+params[:repository][:identifier]+" "+@upasswd
|
||||||
|
# system "echo -e '"+params[:project_id]+"-"+params[:repository][:identifier]+"-write:"+
|
||||||
|
# " "+params[:repository][:identifier]+"' >> "+@root_path+"group.passwd"
|
||||||
|
# system "git init --bare "+@project_path
|
||||||
|
# system "mv "+@project_path+"/hooks/post-update{.sample,}"
|
||||||
|
# system "chmod a+x"+@project_path+"/hooks/post-update"
|
||||||
|
# system "."+@project_path+"/hooks/post-update"
|
||||||
|
# system "echo -e 'Allow from all \n Order Deny,Allow \n "+
|
||||||
|
# "<Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> \n"+
|
||||||
|
# "Require group "+params[:project_id]+"-"+params[:repository][:identifier]+"-write \n "+
|
||||||
|
# "</Limit> \n ' >>"+
|
||||||
|
# @project_path+"/.htaccess"
|
||||||
|
render :action => "show"
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
##xianbo
|
||||||
|
@root_path="/home/pdl/redmine-2.3.2-0/apache2/"
|
||||||
|
@repository_name=params[:project_id]+"/"+params[:repository][:identifier]+".git"
|
||||||
|
@project_path=@root_path+"htdocs/"+@repository_name
|
||||||
|
@upasswd=params[:repository][:upassword]
|
||||||
attrs = pickup_extra_info
|
attrs = pickup_extra_info
|
||||||
if(params[:repository]["upassword"])
|
if(params[:repository][:upassword]!="")
|
||||||
params[:repository]["password"]=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")
|
if(params[:repository_scm]=="Git")
|
||||||
params[:repository]["url"]=params[:repository]["identifier"]+'@10.0.47.245://'+params[:repository]["identifier"]
|
params[:repository][:url]=@project_path
|
||||||
end
|
end
|
||||||
|
# else
|
||||||
|
# render_error l(:error_scm_password_not_set); return
|
||||||
|
# render :action => 'newrepo'
|
||||||
end
|
end
|
||||||
|
###xianbo
|
||||||
@repository = Repository.factory(params[:repository_scm])
|
@repository = Repository.factory(params[:repository_scm])
|
||||||
@repository.safe_attributes = params[:repository]
|
@repository.safe_attributes = params[:repository]
|
||||||
if attrs[:attrs_extra].keys.any?
|
if attrs[:attrs_extra].keys.any?
|
||||||
@repository.merge_extra_info(attrs[:attrs_extra])
|
@repository.merge_extra_info(attrs[:attrs_extra])
|
||||||
end
|
end
|
||||||
|
#by xianbo
|
||||||
|
|
||||||
@repository.project = @project
|
@repository.project = @project
|
||||||
if request.post? && @repository.save
|
if request.post? && @repository.save
|
||||||
if(params[:repository]["upassword"]&¶ms[:repository_scm]=="Git")
|
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 "htpasswd -mb "+@root_path+"user.passwd "+params[:repository][:identifier]+" "+@upasswd
|
||||||
system "git init --bare /home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git"
|
system "echo -e '\n"+params[:project_id]+"-"+params[:repository][:identifier]+"-write:"+
|
||||||
system "mv /home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git/hooks/post-update{.sample,}"
|
" "+params[:repository][:identifier]+"' >> "+@root_path+"group.passwd"
|
||||||
system "./home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git/hooks/post-update"
|
system "git init --bare "+@project_path
|
||||||
}
|
system "mv "+@project_path+"/hooks/post-update{.sample,}"
|
||||||
#system "C:/Users/ta/Desktop/modify.bat #{params[:repository]["identifier"]} #{params[:repository]["upassword"]}"
|
system "chmod a+x"+@project_path+"/hooks/post-update"
|
||||||
# system("mkdir c:/test/svn123")
|
system "cd "+@project_path+"/hooks/"
|
||||||
# system("git init --bare c:/test/svn123/#{params[:repository]["identifier"]}")
|
system "./post-update"
|
||||||
|
system "echo -e 'Allow from all \n Order Deny,Allow \n "+
|
||||||
|
"<Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> \n"+
|
||||||
|
"Require group "+params[:project_id]+"-"+params[:repository][:identifier]+"-write \n "+
|
||||||
|
"</Limit> \n ' >>"+
|
||||||
|
@project_path+"/.htaccess"
|
||||||
|
|
||||||
end
|
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')
|
redirect_to settings_project_path(@project, :tab => 'repositories')
|
||||||
else if(params[:repository]["upassword"])
|
else if(@upasswd)
|
||||||
render :action => 'newrepo'
|
render :action => 'newrepo', :layout =>'base_projects'
|
||||||
else
|
else
|
||||||
render :action => 'new'
|
render :action => 'new', :layout =>'base_projects'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1005,8 +1005,17 @@ module ApplicationHelper
|
||||||
if errors.any?
|
if errors.any?
|
||||||
html << "<div id='errorExplanation'><ul>\n"
|
html << "<div id='errorExplanation'><ul>\n"
|
||||||
errors.each do |error|
|
errors.each do |error|
|
||||||
|
###by xianbo
|
||||||
|
if(error!="库路径 不能为空字符")
|
||||||
html << "<li>#{h error}</li>\n"
|
html << "<li>#{h error}</li>\n"
|
||||||
end
|
end
|
||||||
|
###xianbo
|
||||||
|
end
|
||||||
|
###by xianbo
|
||||||
|
if params[:repository][:upassword]==""
|
||||||
|
html << "<li>密码不能设置为空。</li>\n"
|
||||||
|
end
|
||||||
|
###xianbo
|
||||||
html << "</ul></div>\n"
|
html << "</ul></div>\n"
|
||||||
end
|
end
|
||||||
html.html_safe
|
html.html_safe
|
||||||
|
@ -1317,8 +1326,8 @@ module ApplicationHelper
|
||||||
# end
|
# end
|
||||||
|
|
||||||
#added by william
|
#added by william
|
||||||
def need_login
|
def get_fans_num(user)
|
||||||
redirect_to signin_path
|
user.watcher_users.count
|
||||||
end
|
end
|
||||||
#end
|
#end
|
||||||
end
|
end
|
||||||
|
|
|
@ -137,12 +137,14 @@ module RepositoriesHelper
|
||||||
|
|
||||||
def scm_select_tag(repository)
|
def scm_select_tag(repository)
|
||||||
scm_options = [["--- #{l(:actionview_instancetag_blank_option)} ---", '']]
|
scm_options = [["--- #{l(:actionview_instancetag_blank_option)} ---", '']]
|
||||||
|
#Modified by tanxianbo
|
||||||
Redmine::Scm::Base.all.each do |scm|
|
Redmine::Scm::Base.all.each do |scm|
|
||||||
if Setting.enabled_scm.include?(scm) ||
|
if Setting.enabled_scm.include?(scm) ||
|
||||||
(repository && repository.class.name.demodulize == scm)
|
(repository && repository.class.name.demodulize == scm)
|
||||||
scm_options << ["Repository::#{scm}".constantize.scm_name, scm]
|
scm_options << ["Repository::#{scm}".constantize.scm_name, scm]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
# Ended by tanxianbo
|
||||||
select_tag('repository_scm',
|
select_tag('repository_scm',
|
||||||
options_for_select(scm_options, repository.class.name.demodulize),
|
options_for_select(scm_options, repository.class.name.demodulize),
|
||||||
:disabled => (repository && !repository.new_record?),
|
:disabled => (repository && !repository.new_record?),
|
||||||
|
@ -161,7 +163,7 @@ module RepositoriesHelper
|
||||||
content_tag('p', form.text_field(:url, :size => 60, :required => true,
|
content_tag('p', form.text_field(:url, :size => 60, :required => true,
|
||||||
:disabled => !repository.safe_attribute?('url')) +
|
:disabled => !repository.safe_attribute?('url')) +
|
||||||
'<br />'.html_safe +
|
'<br />'.html_safe +
|
||||||
'(file:///, http://, https://, svn://, svn+[tunnelscheme]://)') +
|
"<em class='info'>".html_safe+"定义已有版本库URL路径,定义格式file:///, http://, https://, svn://, svn+[tunnelscheme]://"+"</em>".html_safe) +
|
||||||
content_tag('p', form.text_field(:login, :size => 30))+
|
content_tag('p', form.text_field(:login, :size => 30))+
|
||||||
content_tag('p', form.password_field(
|
content_tag('p', form.password_field(
|
||||||
:password, :size => 30, :name => 'ignore',
|
:password, :size => 30, :name => 'ignore',
|
||||||
|
@ -198,13 +200,13 @@ module RepositoriesHelper
|
||||||
# end
|
# end
|
||||||
|
|
||||||
def git_field_tags(form, repository)
|
def git_field_tags(form, repository)
|
||||||
content_tag('p', form.text_field(
|
# content_tag('p', form.text_field(
|
||||||
:url, :label => l(:field_path_to_repository),
|
# :url, :label => l(:field_path_to_repository),
|
||||||
:size => 60, :required => true,
|
# :size => 60, :required => true,
|
||||||
:disabled => !repository.safe_attribute?('url')
|
# :disabled => !repository.safe_attribute?('url')
|
||||||
) +
|
# ) +
|
||||||
'<br />'.html_safe +
|
# '<br />'.html_safe +
|
||||||
l(:text_git_repository_note)) +
|
# l(:text_git_repository_note)) +
|
||||||
content_tag('p', form.select(
|
content_tag('p', form.select(
|
||||||
:path_encoding, [nil] + Setting::ENCODINGS,
|
:path_encoding, [nil] + Setting::ENCODINGS,
|
||||||
:label => l(:field_scm_path_encoding)
|
:label => l(:field_scm_path_encoding)
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
<% project_path_cut = 40 %>
|
||||||
|
<% ip = "222.247.54.100" %><!--Added by tanxianbo For formatting project's path-->
|
||||||
<% if @project.repositories.any? %>
|
<% if @project.repositories.any? %>
|
||||||
<table class="list">
|
<table class="list">
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -5,7 +7,7 @@
|
||||||
<th><%= l(:field_identifier) %></th>
|
<th><%= l(:field_identifier) %></th>
|
||||||
<th><%= l(:field_repository_is_default) %></th>
|
<th><%= l(:field_repository_is_default) %></th>
|
||||||
<th><%= l(:label_scm) %></th>
|
<th><%= l(:label_scm) %></th>
|
||||||
<th><%= l(:label_repository) %></th>
|
<th><%= l(:label_repository_path) %></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -18,15 +20,22 @@
|
||||||
</td>
|
</td>
|
||||||
<td align="center"><%= checked_image repository.is_default? %></td>
|
<td align="center"><%= checked_image repository.is_default? %></td>
|
||||||
<td><%=h repository.scm_name %></td>
|
<td><%=h repository.scm_name %></td>
|
||||||
|
<%if repository.scm_name=="Git"%>
|
||||||
|
<td>http://<%= repository.identifier%>@<%= ip %><%=h repository.url.slice(project_path_cut, repository.url.length) %></td><!--Modified by tanxianbo-->
|
||||||
|
<%else %>
|
||||||
<td><%=h repository.url %></td>
|
<td><%=h repository.url %></td>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<td class="buttons">
|
<td class="buttons">
|
||||||
<% if User.current.allowed_to?(:manage_repository, @project) %>
|
<% if repository.scm_name=="Subversion"%>
|
||||||
|
<%if User.current.allowed_to?(:manage_repository, @project) %>
|
||||||
<%= link_to(l(:label_user_plural), committers_repository_path(repository),
|
<%= link_to(l(:label_user_plural), committers_repository_path(repository),
|
||||||
:class => 'icon icon-user') %>
|
:class => 'icon icon-user') %>
|
||||||
<%= link_to(l(:button_edit), edit_repository_path(repository),
|
<%= link_to(l(:button_edit), edit_repository_path(repository),
|
||||||
:class => 'icon icon-edit') %>
|
:class => 'icon icon-edit') %>
|
||||||
<%= delete_link repository_path(repository) %>
|
<%= delete_link repository_path(repository) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% end %>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
<!-- #changed by xianbo tan -->
|
||||||
|
<style type="text/css">
|
||||||
|
.textbg{
|
||||||
|
background-color:gray;
|
||||||
|
border:none
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<%= error_messages_for 'repository' %>
|
||||||
|
|
||||||
|
<div class="box tabular">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<%= label_tag('repository_scm', l(:label_scm)) %>
|
||||||
|
<!--Modified by tanxianbo-->
|
||||||
|
<%= select_tag('repository_scm',
|
||||||
|
options_for_select(["Git"],@repository.class.name.demodulize),
|
||||||
|
:data => {:remote => true, :method => 'get'})%>
|
||||||
|
<!--Ended by tanxianbo-->
|
||||||
|
<% if @repository && ! @repository.class.scm_available %>
|
||||||
|
<em class="info error"><%= l(:text_scm_command_not_available) %></em>
|
||||||
|
<% end %>
|
||||||
|
</p>
|
||||||
|
<p><%= f.check_box :is_default, :label => :field_repository_is_default %></p>
|
||||||
|
<p><%= f.text_field :identifier, :required=>true, :disabled => @repository.identifier_frozen? %>
|
||||||
|
<% unless @repository.identifier_frozen? %>
|
||||||
|
<em class="info"><%= l(:text_length_between, :min => 1, :max => Repository::IDENTIFIER_MAX_LENGTH) %>
|
||||||
|
<%= l(:text_repository_identifier_info).html_safe %></em>
|
||||||
|
<% end %></p>
|
||||||
|
<!-- <p><%= f.text_field :url, :size => 60, :required => true,:readonly=>true, :class=>'textbg'%></p> -->
|
||||||
|
<p><%= f.password_field :upassword, :required =>true, :label=> :field_password %></p>
|
||||||
|
<p><%= f.select(:path_encoding, [nil] + Setting::ENCODINGS, :label => l(:field_scm_path_encoding))%>
|
||||||
|
<%= l(:text_scm_path_encoding_note)%></p>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<%= submit_tag(@repository.new_record? ? l(:button_create) : l(:button_save)) %>
|
||||||
|
<%= link_to l(:button_cancel), settings_project_path(@project, :tab => 'repositories') %>
|
||||||
|
</p>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<!-- new repository ,new by xianbo-->
|
||||||
|
<h3><%= l(:label_repository_new_repos) %></h3>
|
||||||
|
<%= labelled_form_for :repository, @repository, :url =>project_repositories_path(@project),:html => {:id => 'repository-form'} do |f| %>
|
||||||
|
<%= render :partial => 'form_create', :locals => {:f => f} %>
|
||||||
|
|
||||||
|
<% end %>
|
|
@ -0,0 +1 @@
|
||||||
|
$('#content').html('<%= escape_javascript(render :template => 'repositories/newrepo', :formats => [:html]) %>');
|
Loading…
Reference in New Issue