in lib/grit/git-ruby/git_object.rb [147:161]
def type=(type)
case @type
when :link
@mode = (@mode & ~S_IFMT) | S_IFLNK
when :directory
@mode = (@mode & ~S_IFMT) | S_IFDIR
when :file
@mode = (@mode & ~S_IFMT) | S_IFREG
when :submodule
@mode = (@mode & ~S_IFMT) | S_IFGITLINK
else
raise RuntimeError, "invalid type"
end
end