Estoy tratando de obtener una lista de todas las identificaciones de objeto en un repositorio de git, usando libgit2. Parece que no puedo encontrar ningún método para esto. ¿Libgit2 tiene un método para obtener todos los ID de objeto (o iterar a través de ellos), o debo leerlos manualmente?¿Cómo recuperar todas las ID de objeto?
Respuesta
Lo que está buscando es el revision walking
API.
- Descripción de la característica se puede encontrar here.
- Un test demostrando estrategias diferentes pueden caminar también le proporcionará algo de ayuda
Editar: Unathread en el libgit2 mailing list se ocupa específicamente de esto.
una respuesta más precisa a partir Vicent Martí (mantenedor libgit2) es
... Basta con pulsar cada cabeza en el andador. No obtendrá ningún commit duplicado.
Todo lo que tiene que hacer es presionar cada rama y etiquetar los oids en el corrector de revisiones para recorrer recursivamente el historial de confirmaciones. Tenga en cuenta que esto no recuperará las confirmaciones pendientes (confirmaciones o cadena de confirmaciones a las que no hace referencia una sucursal ni una etiqueta).
Edición 2: Este comportamiento (similar a git log --all
) ha sido exitosamente implemented en libgit2sharp (libgit2 fijaciones .Net).
Datos 3: Una nueva característica se ha fusionado recientemente que permitiría a enumerar todos los los objetos (cometa, árboles, gotas, ...) almacenados en la base de datos de objetos: git_odb_foreach()
.
Esto estaría más en línea con el escenario git fsck
del que hablabaMatrixFrog.
git_odb_foreach()
documentation- A simple test que muestra cómo utilizar la API de
Los dos primeros enlaces en su respuesta son devolver 404. –
@GeorgeEdison Gracias! Esos están arreglados ahora. – nulltoken
- 1. Cómo recuperar todas las visitas en lucene.net
- 2. Cómo recuperar el ID xml de EditText
- 3. ¿Puedo recuperar todas las revisiones de un documento eliminado?
- 4. Mysql recuperar todas las filas con límite de
- 5. ¿Cómo serializar todas las propiedades de un objeto mapeado-NHibernate?
- 6. Cómo recuperar el id. De subproceso de un boost :: thread?
- 7. recuperar lista de todas las etiquetas en blogger
- 8. Obtenga todas las ID de publicación en Wordpress
- 9. Recuperar ID de sesión con Spring Security
- 10. cómo averiguar todas las propiedades de un objeto en lua?
- 11. ¿Cómo enumerar todas las propiedades de un objeto Powershell?
- 12. ¿Cómo eliminar todas las referencias de un objeto en Python?
- 13. ¿Listar todas las propiedades del objeto ventana?
- 14. JavaScript Id de objeto
- 15. ¿Cómo puedo enumerar todas las propiedades del objeto Math?
- 16. jQuery Seleccionar todas las tablas con id comenzando por
- 17. Cómo recuperar previamente las ID de secuencia de Oracle en un entorno distribuido
- 18. Obtiene objeto por id()?
- 19. Reflejo de Javascript: ¿obtiene todas las propiedades de un objeto?
- 20. recuperar único objeto de NSFetchRequest
- 21. Cómo borrar un objeto id con marco de la entidad
- 22. Cassandra: cómo recuperar todas las claves en un CF (particionador aleatorio)
- 23. Imprimir todas las propiedades ocultas de un objeto
- 24. Id. De objeto autoincrementado en datos centrales
- 25. Cassandra Hector: ¿Cómo recuperar todas las filas de una familia de columnas?
- 26. Obtener todas las funciones de un objeto en JavaScript
- 27. Retorno todas las propiedades de un objeto en Objective-C
- 28. Looping a través de todas las propiedades del objeto php
- 29. Cómo copiar todas las propiedades de un objeto a otro objeto, en Python?
- 30. ¿Cómo recuperar todas las claves (o valores) de un std :: map y ponerlas en un vector?
No sé libgit2 en absoluto, pero creo que el comando git para la que sería una variante de 'git fsck' así que diría escanear a través de la fuente libgit2 para ver si hay código que haga lo que 'git fsck' hace. – MatrixFrog