rugged icon indicating copy to clipboard operation
rugged copied to clipboard

Rugged::Repository.init_at does not create a branch

Open mslinn opened this issue 2 years ago • 0 comments

The git-init docs say:

This command creates an empty Git repository - basically a .git directory with subdirectories for objects, refs/heads, refs/tags, and template files. An initial branch without any commits will be created (see the --initial-branch option below for its name).

However, Rugged::Repository.init_at does not create any branches:

require 'rugged'
require 'tmpdir'

Dir.mktmpdir do |temp_dir| # This directory will be deleted on exit
  Dir.chdir(temp_dir)
  puts "Working in #{temp_dir}"

  repo = Rugged::Repository.init_at temp_dir
  `git branch -l` # no output and no error
  repo.checkout 'master' # Throws Rugged::ReferenceError: revspec 'master' not found
end

Is this a bug?

Also, attempting to create a branch after calling init_at fails:

repo = Rugged::Repository.init_at temp_dir
repo.create_branch 'master' # Throws Rugged::ReferenceError: revspec 'HEAD' not found

However, attempting to create the branch using the command line after calling init_at works:

Rugged::Repository.init_at temp_dir
`git checkout -b master` # works just fine

mslinn avatar Mar 10 '23 13:03 mslinn