git_repository.rb revision 532f6901b468d49af265ef939b52bbc6c8f1ab85
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn# Wrapper for access to the local Git repository
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn raise URLNotFoundError.new unless path_exists?(oid, url)
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn file_path << '/' if file_path[-1] != '/' && !file_path.empty?
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn def is_head?(commit_oid=nil)
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn commit_oid == nil || (!@repo.empty? && commit_oid == head_oid)
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn def path_exists_rugged?(rugged_commit, url='')
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn if url.empty?
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn tree = rugged_commit.tree
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn nil != get_object(rugged_commit, url)
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn rescue Rugged::OdbError
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn def get_current_file_rugged(rugged_commit, url='')
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn return nil unless path_exists_rugged?(rugged_commit, url)
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn object = get_object(rugged_commit, url)
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn if object.type == :blob
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn filename = url.split('/')[-1]
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn mime_info = mime_info(filename)
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn name: filename,
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn size: object.size,
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn content: object.content,
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn mime_type: mime_info[:mime_type],
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn mime_category: mime_info[:mime_category]
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn # NOTE: "destroy repository" function not inserted here
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn def head_oid
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn @repo.head.target
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn @repo.lookup(head_oid)