in lib/grit/status.rb [89:114]
def construct_status
@files = ls_files
Dir.glob(File.join(@base.working_dir, '**/*')) do |full_file|
file = full_file.gsub "#{@base.working_dir}/", ""
if !@files[file]
@files[file] = {:path => file, :untracked => true} if !File.directory?(file)
end
end
diff_files.each do |path, data|
@files[path] ? @files[path].merge!(data) : @files[path] = data
end
diff_index('HEAD').each do |path, data|
@files[path] ? @files[path].merge!(data) : @files[path] = data
end
@files.each do |k, file_hash|
@files[k] = StatusFile.new(@base, file_hash)
end
end