Pregunta

Lo que me gusta fósiles es que utiliza SQLite viejo y simple para almacenar conjuntos de cambios, archivos, etc. puedo usar la herramienta de línea de comando para consultar el repositorio, pero si quiero algo no soportado por ella, puedo repliegue a escribir una consulta SQL.

Mercurial y Git son más maduros, tienen más bibliotecas, más impulso, sino que utilizan su propio formato de repositorio. Me pregunto si es posible tener SQLite como su back-end repositorio. (Sé que hay herramientas para consultar un acuerdo de recompra mercurial o git directamente, pero parece más fácil sql.)

¿Fue útil?

Solución

Con Git, el formato de repositorio es una parte muy fundamental de las obras de todo sentido. Habría que hacer mucho trabajo para cambiar eso.

No he leído ninguna de fuente de mercurio, pero me imagino que la situación no es muy diferente.

Como he sugerido en mi comentario, no estoy realmente seguro de por qué te gustaría hacer esto. Para git a seguir siendo capaz de tener todas sus ventajas, que tendría que almacenar objetos git en su base de datos SQLite. Usted aún necesita todas las herramientas git bajo nivel para acceder y manipular ellos - no vas a ser simplemente mirando hacia arriba manchas y árboles por sus SHA1s y hacer todo el resto del trabajo usted mismo. (E incluso si por alguna razón usted quiere, se puede hacer eso con la misma facilidad mirando en el GIT objetos de directorio.)

Mi sugerencia sería que, si encuentra que hay operaciones que desea realizar en Git que no están apoyadas, se familiarice con algunos de los comandos de fontanería y encontrar la manera de escribirlos como scripts. Git realmente exponer más o menos el nivel más bajo de operaciones que pueda desear.

P.S. Si no se encuentra una operación sin apoyo específico que desea hacer, y está teniendo problemas para encontrar la tubería que debe realizar, o con las secuencias de comandos necesarios para ponerlo en práctica, enviar una pregunta aquí! No hay razón para quedarse atorado simplemente porque no se puede utilizar SQL.

Otros consejos

Como Jefromi escribe, Mercurial también está utilizando un formato personalizado a achive alta compresión y el acceso rápido a cualquier revisión. Esta es la href="https://www.mercurial-scm.org/wiki/Revlog" rel="nofollow noreferrer"> revlog formato

Sin embargo, es por supuesto posible reemplazar este formato de almacenamiento con otro si lo desea. Google hizo esto cuando se ponen en Mercurial Bigtable de código. google.com. Una consecuencia divertido de ellos utilizando su propio formato de fondo es que no hay números de revisión en su interfaz web. En Mercurial normales, los números de revisión (local de sólo número entero se puede utilizar en lugar de la almohadilla de cambios completo) es el índice de los conjuntos de cambios en el fichero de registro. Cuando los conjuntos de cambios no se almacenan en revlogs, no existe un índice natural y, por tanto, Google no muestra los números de revisión.

Es posible con backends libgit2: https://github.com/libgit2/libgit2-backends/blob /master/sqlite/sqlite.c

No he hecho ninguna medición, pero el rendimiento debe sufrir un poco. Sin embargo, también es más conveniente (archivo único para toda la historia de recompra, clásico language..etc consulta SQL ..)

En nombre de Git, no se puede utilizar diferentes backend con los binarios oficiales. Sin embargo, el proyecto libgit2 permite el uso de diferentes sistemas de apoyo para almacenar la base de datos. Sin embargo, usted tiene que construir todos los binarios que desea utilizar para cometer, fusión, empujar, tirar, rebase, etc. También, usted no será capaz de modificar su repositorio con los binarios oficiales. Vas a tener que empujar a un acuerdo de recompra norma primera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top