class Git::Status
def construct_status
def construct_status # Lists all files in the index and the worktree # git ls-files --stage # { file => { path: file, mode_index: '100644', sha_index: 'dd4fc23', stage: '0' } } @files = @base.lib.ls_files # Lists files in the worktree that are not in the index # Add untracked files to @files fetch_untracked # Lists files that are different between the index vs. the worktree fetch_modified # Lists files that are different between the repo HEAD vs. the worktree fetch_added @files.each do |k, file_hash| @files[k] = StatusFile.new(@base, file_hash) end end