From a4fa110279ea28873fe1e4df10c89ddc591046b4 Mon Sep 17 00:00:00 2001 From: scott Chacon Date: Sun, 11 Nov 2007 10:43:27 -0800 Subject: added the commit(), changed base.commit, base.tree, base.blob to gcommit, gtree, gblob --- lib/git/status.rb | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'lib/git/status.rb') diff --git a/lib/git/status.rb b/lib/git/status.rb index 24fd98d..f738644 100644 --- a/lib/git/status.rb +++ b/lib/git/status.rb @@ -27,8 +27,8 @@ module Git out = '' self.each do |file| out << file.path - out << "\n\tsha(r) " + file.sha_repo.to_s - out << "\n\tsha(i) " + file.sha_index.to_s + out << "\n\tsha(r) " + file.sha_repo.to_s + ' ' + file.mode_repo.to_s + out << "\n\tsha(i) " + file.sha_index.to_s + ' ' + file.mode_index.to_s out << "\n\ttype " + file.type.to_s out << "\n\tstage " + file.stage.to_s out << "\n\tuntrac " + file.untracked.to_s @@ -55,7 +55,10 @@ module Git attr_accessor :mode_index, :mode_repo attr_accessor :sha_index, :sha_repo - def initialize(hash) + @base = nil + + def initialize(base, hash) + @base = base @path = hash[:path] @type = hash[:type] @stage = hash[:stage] @@ -66,6 +69,14 @@ module Git @untracked = hash[:untracked] end + def blob(type = :index) + if type == :repo + @base.object(@sha_repo) + else + @base.object(@sha_index) rescue @base.object(@sha_repo) + end + end + end @@ -85,16 +96,16 @@ module Git # find modified in tree @base.lib.diff_files.each do |path, data| - @files[path].merge!(data) + @files[path] ? @files[path].merge!(data) : @files[path] = data end # find added but not committed - new files @base.lib.diff_index('HEAD').each do |path, data| - @files[path].merge!(data) + @files[path] ? @files[path].merge!(data) : @files[path] = data end @files.each do |k, file_hash| - @files[k] = StatusFile.new(file_hash) + @files[k] = StatusFile.new(@base, file_hash) end end -- cgit