diff options
Diffstat (limited to 'lib/oxidized/output')
| -rw-r--r-- | lib/oxidized/output/git.rb | 25 | 
1 files changed, 16 insertions, 9 deletions
diff --git a/lib/oxidized/output/git.rb b/lib/oxidized/output/git.rb index e9256e8..57b6f62 100644 --- a/lib/oxidized/output/git.rb +++ b/lib/oxidized/output/git.rb @@ -2,7 +2,6 @@ module Oxidized  class Git < Output    class GitError < OxidizedError; end    begin -    gem 'rugged', '~> 0.21.0'      require 'rugged'    rescue LoadError      raise OxidizedError, 'rugged not found: sudo gem install rugged' @@ -68,17 +67,23 @@ class Git < Output    def update repo, file, data      return if data.empty?      if @opt[:group] -      repo = File.join File.dirname(repo), @opt[:group] + '.git' +      if @cfg.single_repo? +        file = File.join @opt[:group], file +      else +        repo = File.join File.dirname(repo), @opt[:group] + '.git' +      end      end -    repo = Rugged::Repository.new repo -    update_repo repo, file, data, @msg, @user, @email -  rescue Rugged::OSError, Rugged::RepositoryError => open_error      begin -      Rugged::Repository.init_at repo, :bare -    rescue => create_error -      raise GitError, "first '#{open_error.message}' was raised while opening git repo, then '#{create_error.message}' was while trying to create git repo" +      repo = Rugged::Repository.new repo +      update_repo repo, file, data, @msg, @user, @email +    rescue Rugged::OSError, Rugged::RepositoryError => open_error +      begin +        Rugged::Repository.init_at repo, :bare +      rescue => create_error +        raise GitError, "first '#{open_error.message}' was raised while opening git repo, then '#{create_error.message}' was while trying to create git repo" +      end +      retry      end -    retry    end    def update_repo repo, file, data, msg, user, email @@ -99,7 +104,9 @@ class Git < Output          :parents    => repo.empty? ? [] : [repo.head.target].compact,          :update_ref => 'HEAD',        ) +              index.write +      true      end    end  end  | 
