construct_status

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