有谁知道如何使用 libgit2 的 ruby 绑定(“坚固的”gem)创建提交?我已经尝试了所有我能找到的例子,在 libgit2 使用指南和坚固的 gem github 页面上,创建或编辑提交的例子都没有工作。
到目前为止,这有助于弄清楚如何提交,除了它用于 libgit2 本身而不是 ruby 绑定。http://librelist.com/browser//libgit2/2011/2/19/initing-a-repository-adding-files-to-the-index-and-committing/#d94ce8df18ff0202ce904180286a4a85
当我尝试按照 Rugged Github 页面上的步骤进行提交时,我得到了这个;
pry(main)> Rugged::Commit.create( repo, :author=>author, :message=>"Hello world\n\n", :committer=>author, :parents=>parents, :tree=>tree )
TypeError: wrong argument type nil (expected String)
当我尝试遵循 libgit2 使用指南时,它基本上说要获取提交,然后使用commit.message=
类似的命令对其进行编辑,但后来我得到 noMethodErrors,因为没有 'message=' 方法。
libgit2 使用指南:http
://libgit2.github.com/api.html
加固文档 0:http
://rubydoc.info/gems/rugged/0.16.0/frames
加固 Github 页面:https ://github.com/ libgit2/坚固的
编辑:我如何重现这个;http://pastebin.com/wnta8FWm
Edit_n+1:我还尝试使用树的 sha 而不是 Rugged::Tree 对象,通过尝试
x=Rugged::Commit.create( repo, :author=>author, :message=>"Hello world\n\n", :committer=>author, :parents=>parents, :tree=>tree.oid )
但这只会产生与以前完全相同的错误输出。