.Net Git Library que permite la adición / modificación de files en la memory

¿Alguien sabe de una biblioteca de Git para C # que permite que el código del cliente agregue y modifique los files del repository en la memory? Tengo un repository simple que me gustaría hacer adiciones y modificaciones de forma pragmática. Debido a que es un repository simple, no quiero escribir files en el sistema de files. ¿Existe algo como esto?

¡Gracias!

GitSharp expone una sobrecarga de Create() en su tipo de Blob que permite escribir directamente en la database de Git Object sin la necesidad de un file intermedio en un directory de trabajo.

La testing unitaria a continuación (ligeramente parcheada desde BlobTests.cs ) demuestra dicha característica:

 [Test] public void WriteBlob() { using (var repo = GetTrashRepository()) { blob = Blob.Create(repo, "and this is the data in me\r\n\r\n"); Assert.AreEqual("95ea6a6859af6791464bd8b6de76ad5a6f9fad81", blob.Hash); var same_blob = new Blob(repo, blob.Hash); Assert.AreEqual(Encoding.UTF8.GetBytes("and this is the data in me\r\n\r\n"), same_blob.RawData); } } 

EDITAR:

También podría estar dispuesto a echarle un vistazo a NGit . Es un puerto automatizado de JGit a .Net. Contrariamente a GitSharp, todavía se mantiene.

El ObjectInserter (ver aquí ) parece algo prometedor .

Nota: Si está dispuesto a usar Git como una database de objects, al escribir objects directamente sin la danza Commit, asegúrese de crear una reference (en .git/refs ) para evitar que sean eliminados en un lanzamiento de git gc .

Nota 2: los objects de Git son de solo lectura, por lo que no podrás "modificar" un Blob . Sin embargo, si creó una reference que apunta hacia ella, puede crear una nueva Blob "actualizada" y cambiar el objective de la reference para apuntar a la nueva "versión".

Un repository desnudo ES en el sistema de files. Si desea alguna manipulación rápida en memory, use un disco RAM. De esta forma, aún obtienes la funcionalidad actualizada de git.