From d68ec5e0fb156e56c2e057eefe2e473d72d44c1f Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 7 Dec 2011 23:56:57 +0200 Subject: [PATCH] default_branch for project & fixed project destroy --- app/controllers/application_controller.rb | 2 +- app/models/project.rb | 2 +- app/views/layouts/project.html.haml | 2 +- app/views/projects/_form.html.haml | 6 ++++++ db/migrate/20111207211728_add_default_branch_to_project.rb | 5 +++++ db/schema.rb | 5 +++-- lib/gitlabhq/gitolite.rb | 2 +- 7 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20111207211728_add_default_branch_to_project.rb diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index dd0c3c3ec..6f7ed9a3c 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 d881b4d79..a53613139 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 90d8a54a4..8a39dece6 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 ce2fd069b..5901801b4 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 000000000..5c2107f7a --- /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 fd50bf32c..17246a614 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 10ab87bda..e79afb555 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 -- 2.11.0