Durante mucho tiempo pensé en versionar sistemas de archivos. Esta es una característica excelente y he visto Wayback, ext3cow, zfs, soluciones de fusibles o simplemente superposiciones de cvs / svn / git.
Considero ext3cow el modelo para mis requisitos. Transparente, eficiente, pero puedo prescindir de la ls abc@timestamp
función adicional . Siempre que de alguna manera obtenga versiones automatizadas y transparentes de mis archivos.
Puede ser instantáneo o puede basarse en instantáneas en intervalos de 10s, 30s, 1m, 5m, 15m, etc. Simplemente es algo que manejará eficientemente miles de archivos en un directorio dado, todos de varios tamaños, la mayoría pequeños, pero algunos más de 100 ma 1 gb.
ZFS no es realmente una opción, ya que estoy en Linux (y preferiría no usarlo a través del fusible ya que ya tengo una configuración ext3 que quiero versionar, no algo nuevo).
¿Qué soluciones hay por ahí?
fuente
Después de 8 años de búsqueda , encontré el SVNFS de Marco R. Gazzetta (que es diferente del proyecto anterior con el mismo nombre de John Madden [que hace cosas diferentes]). Este SVNFS usa svn de forma transparente en las operaciones de r / w:
Está escrito en Python y usa FUSE:
En el ejemplo, SVNFS usa un directorio separado para el repositorio. Aunque no lo he probado. Para mis necesidades, me gustaría tener un repositorio en mi directorio de trabajo.
También encontré referencia a las capacidades de versiones de Reiser4 hace 4 años:
Pero tampoco lo he comprobado.
Hace dos años fui a buscar más, encontré el proyecto FiST para generar sistemas de archivos apilables y contacté al profesor. Erez Zadok, de la Universidad Stony Brook, quien fue asesor / mentor para el proyecto llamado versionfs hace mucho tiempo. Citando:
http://www.fsl.cs.sunysb.edu/docs/versionfs-fast04/
http://www.fsl.cs.sunysb.edu/docs/versionfs-msthesis/versionfs.pdf
Me pareció muy interesante, pero contactar a los chicos que trabajaron en el proyecto reveló que no hay un lugar conocido de su código fuente. El propio profesor declaró por correo:
Por lo tanto, no hay ningún proyecto que funcione aquí, aunque el concepto de sistemas de archivos apilables me parece muy agradable. ¿Alguien quiere comenzar un proyecto basado en f wrapfs , notifíqueme por favor :)
fuente
Puedes consultar gitfs . Es un sistema de archivos FUSE basado en git, bastante estable y súper fácil de usar.
Básicamente, es una superposición sobre git. Cada vez que actualiza un archivo o directorio, crea una confirmación con ese cambio (sabe que debe procesar las confirmaciones para que no termine con 100 confirmaciones cuando descomprime un archivo). También sabe sincronizar su control remoto y fusionar los conflictos utilizando la estrategia 'aceptar siempre el mío'.
Cuando lo montas, te trae dos directorios: actual e histórico .
├── current │ ├── test1.md │ ├── test2.md │ ├── test3.md -> current/test2.md │ ├── test4.md │ └── test_directory └── history ├── 2014-11-23 │ ├── 20-00-21-d71d1579a7 │ │ └── testing.md │ └── 20-42-32-7d09611d83 │ ├── test2.md │ └── testing.md ├── 2014-12-08 │ ├── 16-38-30-6d6e71fe47 │ │ ├── test2.md │ │ └── test1.md
Se puede encontrar más información en esta página .
fuente
Bup parece prometedor.
Una discusión más antigua sobre esto aquí: http://lwn.net/Articles/380983/
fuente
Pruebe rsnapshot : no lo he usado yo mismo, pero me topé con él mientras buscaba @ sistemas de deduplicación a nivel de archivo.
fuente
Eche un vistazo a Hot Copy de R1Soft.
http://www.r1soft.com/tools/linux-hot-copy/
Este es un módulo de núcleo que proporciona instantáneas de copia en escritura para sistemas estándar sin utilizar LVM. Me funcionó bastante bien y puedo instalarlo sin reiniciar.
Ver también: http://www.r1soft.com/tools/linux-hot-copy/hcp-tips/
fuente