Git Checkout y Pull through Lib2GitSharp

Estoy intentando crear una aplicación que escanea periódicamente el historial de confirmaciones en varias twigs de Git e informes sobre los autores y varios detalles sobre los posts de confirmación. Empecé a usar LibGit2Sharp para esto. Ha sido genial para acceder a los commits, pero me he encontrado con un problema al intentar actualizar el repository.

Cada vez que se ejecuta mi tarea, necesito get los cambios más recientes del repository remoto. Según tengo entendido, necesito verificar la sucursal local que rastrea la twig remota en cuestión, luego realizar una búsqueda o extracción. Estoy intentando hacer esto en mi aplicación de la siguiente manera:

// Get the branch var localBranch = repo.Branches[localbranchName]; // Switch to this branch if (!localBranch.IsCurrentRepositoryHead) { repo.Checkout(localBranch); } // Do a pull to get latest var result = repo.Network.Pull(signature, new PullOptions()); 

Sin embargo, siempre obtengo la siguiente exception cuando repo.Checkout(localBranch);

 LibGit2Sharp.LibGit2SharpException: Failed to mmap. No data written: Not enough storage is available to process this command. at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in c:\Git\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line 160 at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result) in c:\Git\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line 178 at LibGit2Sharp.Core.Proxy.git_checkout_tree(RepositorySafeHandle repo, ObjectId treeId, GitCheckoutOpts& opts) in c:\Git\libgit2sharp\LibGit2Sharp\Core\Proxy.cs:line 295 at LibGit2Sharp.Repository.CheckoutTree(Tree tree, IList`1 paths, IConvertableToGitCheckoutOpts opts)... 

Cuando selecciono manualmente esa twig en Git Bash y ejecuto mi progtwig (sin pasar por la necesidad del command de finalización de la compra), falla en la llamada a Extraer con la misma exception.

No hay mucho acerca de este error, pero todo lo que he visto hasta ahora ha resultado en respuestas en la medida de "Su repository es demasiado grande para que lo maneje la biblioteca". El repository que estoy usando es un repository empresarial de tamaño razonable, pero estos commands se ejecutan en la console con bastante rapidez. Me pregunto ahora si necesito envolver mi console en un controller y ejecutar el pago y extracción directamente a través de la CLI (yuck).

¿Alguna idea?

Disculpas por esto Se han producido algunos cambios en libgit2 y LibGit2Sharp para lidiar con el uso de la memory y un mejor event handling la asignación de memory, especialmente con packages grandes (o numerosos).

Verá estas mejoras en la próxima versión de LibGit2Sharp. Hasta entonces, la installation de un package de presentación de nuget.org debería resolver este problema.