Cómo comprometerse con enlaces Ruby para libgit2

¿Alguien sabe cómo crear un compromiso utilizando los enlaces de Ruby (la gem 'resistente') para libgit2? He intentado con todos los ejemplos que puedo encontrar, en la guía de uso de libgit2 y en la página rugosa gem github, y ninguno de los ejemplos para crear o editar una confirmación está funcionando.

Esto ha sido útil para tratar de averiguar cómo comprometerse hasta el momento, excepto que se trata de libgit2 y no de las vinculaciones ruby. http://librelist.com/browser//libgit2/2011/2/19/initing-a-repository-adding-files-to-the-index-and-committing/#d94ce8df18ff0202ce904180286a4a85

Cuando bash hacer una confirmación, siguiendo los pasos en la página Rugged Github, obtengo esto;

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) 

Y cuando trato de seguir la guía de uso de libgit2, que básicamente dice get el commit y luego simplemente editarlo usando commit.message= like commands, pero luego obtengo noMethodErrors porque no hay ningún método 'message ='.

libgit2 guía de uso: http://libgit2.github.com/api.html
Documentación resistente 0: http://rubydoc.info/gems/rugged/0.16.0/frames
Página resistente de Github: https://github.com/libgit2/rugged

Editar: Cómo reproduzco esto; http://pastebin.com/wnta8FWm
Edit_n + 1: también intenté usar el sha del tree en lugar de un object Rugged :: Tree, intentando

 x=Rugged::Commit.create( repo, :author=>author, :message=>"Hello world\n\n", :committer=>author, :parents=>parents, :tree=>tree.oid ) 

Pero eso acaba de producir la misma salida de error exacta que antes.

Rugged::Commit.create(repo, data) no es lo que está en el file README. ¿Qué código estás ejecutando? Eso simplemente parece que te falta un campo obligatorio. ¿Qué campos estás rellenando y cómo?

TL; DR — Esto es lo que me solucionó: gem install --prerelease rugged

Después de algunas excavaciones y mucha experimentación, creo haber resuelto el problema.

Cuando instalé gem install rugged rugged me dio la versión 0.16.0. Esta era la versión con la que estaba teniendo problemas, y cuando probé las testings que venían con la gem, muchas de las testings fallaron y muchas de las que fallaron parecían estar relacionadas con confirmaciones de compromiso y escritura.

La página de Rubygems para la gem Rugged muestra que hay una versión 0.17.0.b6 disponible, que me confundió porque nunca había encontrado la opción '–prelease' para gem . Esa versión debe ser una presentación preliminar porque después de hacer la gem install --prerelease rugged versión preliminar gem install --prerelease rugged 0.17.0.b6 (también).

Ahora con 0.17.0.b6 puedo seguir la documentation sin problemas.

Una nota extra, la documentation que he leído no lo menciona pero el código fuente en ext/rugged_commit.c tiene comentarios que mencionan una :update_ref=>'' cuando se crea una confirmación que puede usar para actualizar la reference para señalar el nuevo compromiso. Sin esta opción, la confirmación se creará y escribirá en el ODB, pero no se actualizarán las references y, por lo tanto, no se podrá acceder al compromiso desde ninguna de sus sucursales.