Estoy creando una herramienta que permitirá a las personas almacenar "soluciones" a las pruebas. Como no quiero reinventar el control de versiones, decidí usar las cosas de árbol/blob/objeto de git: mi idea es crear un objeto de árbol git fuera del directorio de trabajo actual.Crear un árbol git del árbol de trabajo sin tocar el índice?
El problema es que quiero que esta herramienta no toque el estado del repositorio del usuario, excepto para buscar hashes a objetos existentes, por supuesto.
He visto tanto mktree
como write-tree
, y el primero necesita ls-tree
de salida y este último necesita examinar el índice. Ninguno de estos es lo que quiero.
Estoy feliz de sumergirme más profundo y escribir los análogos de estos comandos para el árbol de trabajo, sin embargo, tengo problemas para encontrar herramientas de git de bajo nivel para manipular árboles, blobs y objetos.
Idealmente, el usuario será capaz de ejecutar:
$ git create-tree .
y git escupir el hash del objeto de árbol recién creado.
No entiendo exactamente qué quieres hacer. ¿Quieres "no tocar el estado del repositorio del usuario", pero al mismo tiempo crear un árbol en el mismo repositorio? ¿Cómo piensas usar ese árbol? – svick
No lo estoy usando como "historial", solo lo estoy usando como una instantánea de una parte del repositorio. No es convencional –
Bien, pero ¿qué vas a hacer con esa instantánea? ¿Cómo vas a sacarlo del repositorio? – svick