# File lib/r10k/git/working_dir.rb, line 46
  def initialize(ref, remote, basedir, dirname = nil)

    @remote  = remote
    @basedir = basedir
    @dirname = dirname || ref

    @full_path = File.join(@basedir, @dirname)
    @git_dir   = File.join(@full_path, '.git')

    @alternates = R10K::Git::Alternates.new(Pathname.new(@git_dir))
    @cache      = R10K::Git::ShellGit::Cache.generate(@remote)

    if ref.is_a? String
      @ref = R10K::Git::Ref.new(ref, self)
    else
      @ref = ref
      @ref.repository = self
    end
  end