Pro Git
Pro Git Libgit2 tiene un par de capacidades que están fuera del ámbito del núcleo de Git. Un ejemplo es la conectividad: Libgit2 te permite proporcionar 'backends' a medida para varios tipos de operaciones, por lo que puedes almacenar las cosas de una manera diferente a como hace el Git original. Libgit2 permite backends personalizados para la configuración, el almacenamiento de referencias, y la base de datos de objetos, entre otras cosas.
Echemos un vistazo a cómo funciona esto. El código siguiente se ha tomado del conjunto de ejemplos de backend proporcionados por el equipo de Libgit2 (que se puede encontrar en https://github.com/libgit2/libgit2-backends). Asà es como se configura un backend personalizado para una base de datos de objetos:
git_odb *odb; int error = git_odb_new(&odb); ①git_odb_backend *my_backend; error = git_odb_backend_mine(&my_backend, /*…*/); ② error = git_odb_add_backend(odb, my_backend, 1); ③ git_repository *repo; error = git_repository_open(&repo, "some-path"); error = git_repository_set_odb(odb); ④(Ten en cuenta que los errores son capturados, pero no tratados. Esperamos que tu código sea mejor que el nuestro.)
