Gritをつかってrubyでgitを操作してみる
gritというライブラリを使うとgitをrubyで操作できるらしいからすっごい適当に使ってみた。
もっとちゃんと使いたい人はgithub行ってソースなりドキュメントなりをみてくだしあ
http://github.com/mojombo/grit/tree/master
まずはgritをインストール
$ sudo gem sources -a http://gems.github.com/
$ sudo gem install mojombo-grit
git-logっぽいものを出力
require 'rubygems' require 'grit' include Grit gt = Repo.new "/git/repos/path" #=======gitlog========= gt.commits.each do |commit| puts commit.message end
つぎにgit-diffみたいな感じ
require 'rubygems' require 'grit' include Grit gt = Repo.new "/git/repos/path" #=======git.diff======== gt.commits[0].diffs.each do |df| puts df.diff end
最後にbareリポジトリを作って終わりとします。
require 'rubygems' require 'grit' include Grit #=======initialaize======== path = "/git/bare/path/hoge.git" git = Grit::Git.new(path) git.init("") FileUtils.touch(File.join(path, "git-daemon-export-ok")) system(%Q{GIT_DIR="#{path}" git update-server-info})
最後のやつはちょっと使えるかもしれない。