summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2011-12-07 23:56:57 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2011-12-07 23:56:57 +0200
commitd68ec5e0fb156e56c2e057eefe2e473d72d44c1f (patch)
tree0ced51dbab6f99f8fea1004ef2b2f658174b4f92
parent2552a877df7fdb2c0a17a88479a5e49f315bcbad (diff)
downloadgitlab-ce-d68ec5e0fb156e56c2e057eefe2e473d72d44c1f.tar.gz
default_branch for project & fixed project destroy
-rw-r--r--app/controllers/application_controller.rb2
-rw-r--r--app/models/project.rb2
-rw-r--r--app/views/layouts/project.html.haml2
-rw-r--r--app/views/projects/_form.html.haml6
-rw-r--r--db/migrate/20111207211728_add_default_branch_to_project.rb5
-rw-r--r--db/schema.rb5
-rw-r--r--lib/gitlabhq/gitolite.rb2
7 files changed, 18 insertions, 6 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index dd0c3c3ec55..6f7ed9a3ce4 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -61,7 +61,7 @@ class ApplicationController < ActionController::Base
else
@branch = params[:branch].blank? ? nil : params[:branch]
@tag = params[:tag].blank? ? nil : params[:tag]
- @ref = @branch || @tag || Repository.default_ref
+ @ref = @branch || @tag || @project.try(:default_branch) || Repository.default_ref
end
end
diff --git a/app/models/project.rb b/app/models/project.rb
index d881b4d7920..a5361313911 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -158,7 +158,7 @@ class Project < ActiveRecord::Base
end
def root_ref
- "master"
+ default_branch || "master"
end
def public?
diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml
index 90d8a54a4d5..8a39dece6cd 100644
--- a/app/views/layouts/project.html.haml
+++ b/app/views/layouts/project.html.haml
@@ -49,7 +49,7 @@
%span{ :class => "number" }= @project.snippets.non_expired.count
- if can? current_user, :admin_project, @project
- = link_to "Project", edit_project_path(@project), :class => (current_page?(edit_project_path(@project))) ? "current" : nil
+ = link_to "Admin", edit_project_path(@project), :class => (current_page?(edit_project_path(@project))) ? "current" : nil
.medium-tags{:style => 'padding: 10px 0 0 10px; width: 210px;'}= tag_list @project
diff --git a/app/views/projects/_form.html.haml b/app/views/projects/_form.html.haml
index ce2fd069b55..5901801b4f7 100644
--- a/app/views/projects/_form.html.haml
+++ b/app/views/projects/_form.html.haml
@@ -29,6 +29,11 @@
%cite.right= "http://#{GIT_HOST["host"]}/"
%td= f.text_field :code, :placeholder => "example"
+ - unless @project.heads.empty?
+ %tr
+ %td= f.label :default_branch, "Default Branch"
+ %td= f.select(:default_branch, @project.heads.map(&:name), {}, :style => "width:300px;")
+
%tr
%td= f.label :tag_list
%td= f.text_area :tag_list, :placeholder => "project tags", :style => "height:50px", :id => :tag_field
@@ -57,4 +62,5 @@
:javascript
$(function(){
taggifyForm();
+ $('form #project_default_branch').chosen();
})
diff --git a/db/migrate/20111207211728_add_default_branch_to_project.rb b/db/migrate/20111207211728_add_default_branch_to_project.rb
new file mode 100644
index 00000000000..5c2107f7aa5
--- /dev/null
+++ b/db/migrate/20111207211728_add_default_branch_to_project.rb
@@ -0,0 +1,5 @@
+class AddDefaultBranchToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :default_branch, :string, :null => false, :default => "master"
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index fd50bf32c52..17246a614f8 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20111206222316) do
+ActiveRecord::Schema.define(:version => 20111207211728) do
create_table "features", :force => true do |t|
t.string "name"
@@ -76,9 +76,10 @@ ActiveRecord::Schema.define(:version => 20111206222316) do
t.text "description"
t.datetime "created_at"
t.datetime "updated_at"
- t.boolean "private_flag", :default => true, :null => false
+ t.boolean "private_flag", :default => true, :null => false
t.string "code"
t.integer "owner_id"
+ t.string "default_branch", :default => "master", :null => false
end
create_table "snippets", :force => true do |t|
diff --git a/lib/gitlabhq/gitolite.rb b/lib/gitlabhq/gitolite.rb
index 10ab87bdaf8..e79afb55577 100644
--- a/lib/gitlabhq/gitolite.rb
+++ b/lib/gitlabhq/gitolite.rb
@@ -42,7 +42,7 @@ module Gitlabhq
end
def destroy_project(project)
- `sudo -u git rm -rf #{project.path_to_repo}`
+ FileUtils.rm_rf(project.path_to_repo)
ga_repo = ::Gitolite::GitoliteAdmin.new(File.join(@local_dir,'gitolite'))
conf = ga_repo.config