blob: 53c8055b92917125a386b4ba5ccc1a9c20677958 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#!/usr/bin/env ruby
# This is a command line client that can do a number of read operations
# on a git repository in pure ruby. This may be helpful if you have access
# to a computer that has no C compiler but you want to do some git stuff
# on it. It's also helpful for me to test Git stuff with.
#
# author : Scott Chacon (schacon@gmail.com)
#
# todo:
# add --git-dir
# add --log-file
# add --help
#require 'lib/git'
require 'rubygems'
require 'git'
require 'logger'
command = ARGV[0]
if !command
puts 'You have to provide a command'
puts 'usage: gitr (command) [args]'
puts
puts 'commands: log'
puts ' log-shas'
puts ' cat-file'
puts ' rev-parse'
puts ' branches'
puts ' config'
exit
end
git_dir = ENV['GIT_DIR'] || '.git'
@git = Git.bare(git_dir, :log => Logger.new(STDOUT))
case command
when 'log'
# gitr log
@git.log.each do |l|
puts 'commit ' + l.sha
puts l.contents
puts
end
when 'log-shas'
# gitr log-shas
puts @git.log
when 'cat-file'
# gitr cat-file
puts @git.cat_file(ARGV[1])
when 'rev-parse'
# gitr rev-parse
puts @git.revparse(ARGV[1])
when 'branches'
# gitr branches
puts @git.branches
when 'config'
# gitr config
@git.config.sort.each do |k,v|
puts "#{k} : #{v}"
end
end
# gitr ls-tree
# gitr pack-browse
# gitr diff / stats ?
# output in yaml?
|