# File lib/grit/git-ruby/internal/pack.rb, line 48 def with_idx(index_file = nil) if !index_file index_file = @name idxfile = File.open(@name[0...-4]+'idx', 'rb') else idxfile = File.open(index_file, 'rb') end # read header sig = idxfile.read(4) ver = idxfile.read(4).unpack("N")[0] if sig == PACK_IDX_SIGNATURE if(ver != 2) raise PackFormatError, "pack #@name has unknown pack file version #{ver}" end @version = 2 else @version = 1 end idx = FileWindow.new(idxfile, @version) yield idx idx.unmap ensure idxfile.close end