From 6bbead02aa2a60e7d50e68f3b2c98a14c26b2d81 Mon Sep 17 00:00:00 2001 From: scott Chacon Date: Tue, 27 Nov 2007 08:42:26 -0800 Subject: added ls-tree to gitr --- bin/gitr | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) (limited to 'bin') diff --git a/bin/gitr b/bin/gitr index 53c8055..bf1e192 100755 --- a/bin/gitr +++ b/bin/gitr @@ -12,9 +12,9 @@ # add --log-file # add --help -#require 'lib/git' -require 'rubygems' -require 'git' +require 'lib/git' +#require 'rubygems' +#require 'git' require 'logger' command = ARGV[0] @@ -25,15 +25,17 @@ if !command puts puts 'commands: log' puts ' log-shas' - puts ' cat-file' - puts ' rev-parse' + puts ' cat-file (treeish)' + puts ' rev-parse (treeish)' puts ' branches' puts ' config' + puts ' ls-tree (tree)' exit end git_dir = ENV['GIT_DIR'] || '.git' -@git = Git.bare(git_dir, :log => Logger.new(STDOUT)) +#@git = Git.bare(git_dir, :log => Logger.new(STDOUT)) +@git = Git.bare(git_dir) case command when 'log' @@ -60,10 +62,17 @@ when 'config' @git.config.sort.each do |k,v| puts "#{k} : #{v}" end +when 'ls-tree' + # gitr ls-tree + tree = @git.gtree(ARGV[1]) + tree.blobs.sort.each do |name, c| + puts [[c.mode, c.type, c.sha].join(" "), name].join("\t") + end + tree.trees.sort.each do |name, c| + puts [[c.mode, c.type, c.sha].join(" "), name].join("\t") + end end -# gitr ls-tree -# gitr pack-browse - -# gitr diff / stats ? -# output in yaml? \ No newline at end of file +# todo: +# gitr pack-browse +# gitr diff / stats ? -- cgit