From b994a65fc318a91458fa8bb219e7ce07bd893eb5 Mon Sep 17 00:00:00 2001 From: randx Date: Fri, 7 Sep 2012 15:36:40 +0300 Subject: [PATCH] change gitolite backend behaviour to prevent error when config directory removed --- lib/gitlab/backend/gitolite.rb | 2 +- lib/gitlab/backend/gitolite_config.rb | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/gitlab/backend/gitolite.rb b/lib/gitlab/backend/gitolite.rb index bc9e1f1d..658182c7 100644 --- a/lib/gitlab/backend/gitolite.rb +++ b/lib/gitlab/backend/gitolite.rb @@ -5,7 +5,7 @@ module Gitlab class AccessDenied < StandardError; end def config - @config ||= Gitlab::GitoliteConfig.new + Gitlab::GitoliteConfig.new end def set_key key_id, key_content, projects diff --git a/lib/gitlab/backend/gitolite_config.rb b/lib/gitlab/backend/gitolite_config.rb index 5cf49121..47870edc 100644 --- a/lib/gitlab/backend/gitolite_config.rb +++ b/lib/gitlab/backend/gitolite_config.rb @@ -4,8 +4,10 @@ require 'fileutils' module Gitlab class GitoliteConfig - def config_tmp_dir - @config_tmp_dir ||= File.join(Rails.root, 'tmp',"gitlabhq-gitolite-#{Time.now.to_i}") + attr_reader :config_tmp_dir + + def reset_config_tmp_dir + @config_tmp_dir = File.join(Rails.root, 'tmp',"gitlabhq-gitolite-#{Time.now.to_i}") end def apply @@ -13,9 +15,11 @@ module Gitlab File.open(File.join(Rails.root, 'tmp', "gitlabhq-gitolite.lock"), "w+") do |f| begin f.flock(File::LOCK_EX) + reset_config_tmp_dir pull yield(self) push + FileUtils.rm_rf(config_tmp_dir) ensure f.flock(File::LOCK_UN) end @@ -160,8 +164,6 @@ module Gitlab `git commit -am "GitLab"` `git push` Dir.chdir(Rails.root) - - FileUtils.rm_rf(config_tmp_dir) end end end