2012-07-13 71 views
0

我想比较两个分支并显示一个存在但不是另一个的提交。这从命令行git log --pretty=oneline branch_b ^branch_a --no-merges工作,并给了我我想要的,但我想模拟同样的事情在沙砾获得使用对象而不是字符串。这是否可能在沙砾?Ruby Grit:找到两个分支之间的提交

+0

我不知道砂砾什么,但“表明,存在于一个的提交而不是其他”听起来像什么[' git cherry'](http://www.kernel.org/pub/software/scm/git/docs/git-cherry.html)。也许这会给你一些谷歌的东西... ... – MatrixFrog 2012-07-14 19:46:15

回答

0

我觉得这样的事情应该做的伎俩:

require 'grit' 
repo = Grit::Repo.new(".") 
repo.commits_between("branch_b", "branch_a") 

http://grit.rubyforge.org/classes/Grit/Repo.html#M000227为DOC(http://grit.rubyforge.org/全DOC)。

这会给你提交一个数组中的对象,但它并不像git命令那样格式化输出。此外,它不排除合并提交。

为了得到格式化输出,尝试这样的事情:

puts repo.commits_between("branch_b", "branch_a").map { |c| ["*", c.id_abbrev, c.authored_date.to_date, c.short_message] * " " }