ytti/oxidized · error · Oxidized::Output::Git::GitError

first '#{e.message}' was raised while opening git repo, then

Error message

first '#{e.message}' was raised while opening git repo, then '#{create_error.message}' was while trying to create git repo

What it means

Error "first '#{e.message}' was raised while opening git repo, then '#{create_error.message}' was while trying to create git repo" thrown in ytti/oxidized.

Source

Thrown at lib/oxidized/output/git.rb:301

          if @cfg.single_repo?
            file = ::File.join @opt[:group], file
          else
            repo = if repo.is_a?(::String)
                     ::File.join ::File.dirname(repo), @opt[:group] + '.git'
                   else
                     repo[@opt[:group]]
                   end
          end
        end

        begin
          repo = Rugged::Repository.new repo
          update_repo repo, file, data
        rescue Rugged::OSError, Rugged::RepositoryError => e
          begin
            Rugged::Repository.init_at repo, :bare
          rescue StandardError => create_error
            raise GitError, "first '#{e.message}' was raised while opening git repo, then '#{create_error.message}' " \
                            "was while trying to create git repo"
          end
          retry
        end
      end

      # Uploads data into file in the repository repo
      #
      # update_repo caches the index on disk. An index is usually used in a
      # working directory and not in a bare repository, which confuses users.
      # The alternative would be to rebuild the index each time, which a little
      # time consuming. Caching the index in memory is difficult because a new
      # Output object is created each time #store is called.
      def update_repo(repo, file, data) # rubocop:disable Naming/PredicateMethod
        oid_old = repo.blob_at(repo.head.target_id, file) rescue nil
        return false if oid_old && (oid_old.content.b == data.b)

        oid = repo.write data, :blob

View on GitHub (pinned to 687ed4262d)

When it happens

Trigger: Thrown at lib/oxidized/output/git.rb:301 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ytti/oxidized@687ed4262d (2026-08-23). Data as JSON: /api/errors/0e93c335f6ff52ac. Report an issue: GitHub.