Hola,
Ayer subi al sitio
safa-dcs.org/downloads.html el ultimo TAR. Este tiene todo para hacer:
$ safa-init
$ safa-add <algun archivo>
$ safa-commit
Y se crea el commit.
Lo unico que no tiene es el copiado de los blobs. Podríamos hacer un nuevo script para esto:
safa-update-blobs, que reciba un SHA-1 de un TREE, y lo lea, verificando la existencia de sus archivos en el Working Tree.
Si ya existe un blob con el mismo nombre (sha1) que el SHA-1 del TREE, no se hace nada, ya que es un blob existente (no hay probabilidad real de que exista otro archivo en el repositorio con el mismo SHA-1)
Si un archivo existe en el Working Tree, y su SHA-1 coincide con el que esta en el TREE, y no hay un blob del mismo nombre, se copia al repositorio, nombrado con su propio SHA-1 en .safa/blobs.
Si existe en el Working Tree, no hay un blob del mismo nombre, pero el SHA-1 del Working Tree no coincide con el del TREE, se arroja un error ya que no se puede actualizar el repositorio de blobs de ese TREE.
No es complicado, y safa-commit lo ejecutaría al tener el TREE listo, con lo que evitaría errores de SHA-1.
Saludos
--
Dario