rugged
rugged copied to clipboard
Rugged::Repository.init_at does not create a branch
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-branchoption 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