stringtranslate.com

Versiones del sistema de archivos

Un sistema de archivos con control de versiones es cualquier sistema de archivos informático que permite que un archivo informático exista en varias versiones al mismo tiempo. Por lo tanto, es una forma de control de revisiones . La mayoría de los sistemas de archivos con control de versiones más comunes mantienen una serie de copias antiguas del archivo. Algunos limitan la cantidad de cambios por minuto o por hora para evitar almacenar una gran cantidad de cambios triviales. Otros, en cambio, toman instantáneas periódicas a cuyo contenido se puede acceder utilizando métodos similares a los del acceso normal a los archivos.

Tecnologías similares

Respaldo

Un sistema de archivos con versiones es similar a una copia de seguridad periódica , con varias diferencias clave.

En comparación con los sistemas de control de revisiones

Los sistemas de archivos con control de versiones ofrecen algunas de las características de los sistemas de control de versiones . Sin embargo, a diferencia de la mayoría de los sistemas de control de versiones, son transparentes para los usuarios y no requieren un paso de "confirmación" independiente para registrar una nueva revisión.

Sistema de archivos con registro en diario

Los sistemas de archivos con control de versiones no deben confundirse con los sistemas de archivos con registro en diario . Mientras que los sistemas de archivos con registro en diario funcionan manteniendo un registro de los cambios realizados en un archivo antes de confirmar dichos cambios en ese sistema de archivos (y sobrescribiendo la versión anterior), un sistema de archivos con control de versiones mantiene copias anteriores de un archivo al guardar cambios nuevos. Las dos funciones tienen propósitos diferentes y no son mutuamente excluyentes.

Almacenamiento de objetos

Algunas implementaciones de almacenamiento de objetos ofrecen versiones de objetos, como Amazon S3 .

Implementaciones

ES

Una implementación temprana del control de versiones, posiblemente la primera, fue en el ITS del MIT . En el ITS, un nombre de archivo constaba de dos partes de seis caracteres; si la segunda parte era numérica (compuesta solo por dígitos), se trataba como un número de versión. Al especificar un archivo para abrirlo para lectura o escritura, se podía proporcionar una segunda parte de ">"; al leer, esto significaba abrir la versión del archivo con el número más alto; al escribir, significaba incrementar el número de versión existente más alto y crear la nueva versión para escritura.

Otra implementación temprana del control de versiones fue en TENEX , que se convirtió en TOPS-20 . [1]

Archivos-11 (RSX-11 y OpenVMS)

Un ejemplo poderoso de un sistema de control de versiones de archivos está integrado en el sistema operativo RSX-11 y OpenVMS de Digital Equipment Corporation . En esencia, siempre que una aplicación abre un archivo para escribir, el sistema de archivos crea automáticamente una nueva instancia del archivo, con un número de versión adjunto al nombre. Los números de versión comienzan en 1 y cuentan hacia arriba a medida que se crean nuevas instancias de un archivo. Cuando una aplicación abre un archivo para leer, puede especificar el nombre exacto del archivo incluido el número de versión, o solo el nombre del archivo sin el número de versión, en cuyo caso se abre la instancia más reciente del archivo. El comando DCL/CCL "purge" se puede utilizar en cualquier momento para administrar el número de versiones en un directorio específico. De manera predeterminada, se eliminarán todas las versiones excepto las de número más alto de todos los archivos en el directorio actual; este comportamiento se puede anular con el modificador /keep=n y/o especificando rutas de directorio y/o patrones de nombre de archivo. Los sistemas VMS a menudo están programados para purgar los directorios de usuario en un cronograma regular; A veces los usuarios finales lo malinterpretan como una propiedad del sistema de versiones.

Linux

El 8 de febrero de 2004, Kiran-Kumar Muniswamy-Reddy, Charles P. Wright, Andrew Himmer y Erez Zadok (todos de la Universidad Stony Brook ) propusieron un sistema de archivos apilable, Versionfs, que proporciona una capa de control de versiones sobre cualquier otro sistema de archivos de Linux. [3]

LMFS

El sistema de archivos de la máquina Lisp admite el control de versiones. Esto fue posible gracias a las implementaciones de MIT, LMI, Symbolics y Texas Instruments. Uno de estos sistemas operativos fue Symbolics Genera .

macOS

A partir de Lion (10.7), macOS tiene una función llamada Versiones que permite guardar y explorar versiones anteriores de documentos de forma similar a Time Machine para aplicaciones creadas para usar Versiones. Sin embargo, esta funcionalidad se lleva a cabo en la capa de la aplicación, no en la capa del sistema de archivos; [4] Lion y las versiones posteriores no incorporan un verdadero sistema de archivos de control de versiones.

Servidor abierto de SCO

HTFS , adoptado como el sistema de archivos principal para SCO OpenServer en 1995, admite el control de versiones de archivos. El control de versiones se habilita en cada directorio configurando el bit setuid del directorio, que se hereda cuando se crean subdirectorios. Si el control de versiones está habilitado, se crea una nueva versión de archivo cuando se elimina un archivo o directorio, o cuando se abre un archivo existente con truncamiento. Las versiones no actuales permanecen en el espacio de nombres del sistema de archivos, bajo el nombre del archivo original pero con un sufijo adjunto que consiste en un punto y coma y un número de secuencia de versión. Todas las versiones excepto la actual se ocultan de las lecturas de directorios (a menos que se configure la variable de entorno SHOWVERSIONS), pero las versiones son accesibles para todas las operaciones normales. La variable de entorno y la accesibilidad general permiten que las versiones se administren con las utilidades habituales del sistema de archivos, aunque también hay un comando "undelete" que se puede usar para purgar y restaurar archivos, habilitar y deshabilitar el control de versiones en directorios, etc.

Otros

Software relacionado

Los siguientes no son sistemas de archivos con versiones, pero permiten una funcionalidad similar.

Véase también

Referencias

  1. ^ Daniel G. Bobrow, Jerry D. Burchfiel, Daniel L. Murphy, Raymond S. Tomlinson, TENEX, Un sistema de tiempo compartido paginado para el PDP-10 ( Comunicaciones de la ACM , vol. 15, págs. 135-143, marzo de 1972)
  2. ^ linux-tux3 en GitHub .
  3. ^ Kiran-Kumar Muniswamy-Reddy; Charles P. Wright; Andrew Himmer; Erez Zadok (8 de febrero de 2004). Un sistema de archivos de versiones versátil y orientado al usuario. Tercera conferencia USENIX sobre tecnologías de archivos y almacenamiento (FAST 2004).
  4. ^ "Versiones de archivos de Mac OS X Lion, parte 2". 6 de agosto de 2011. Consultado el 28 de abril de 2012 .
  5. ^ Control de versiones con Subversion: control de versiones de código abierto de próxima generación
  6. ^ "Acerca del sistema de archivos de Apple". Documentación para desarrolladores de Apple . Consultado el 9 de junio de 2021 .
  7. ^ http://www.oracle.com/technetwork/articles/servers-storage-admin/advanced-btrfs-1734952.html Instantáneas, clones y dispositivos semilla" subpunto "instantáneas".
  8. ^ Página de inicio de pDumpFS
  9. ^ "Git Internals". Git es fundamentalmente un sistema de archivos direccionable por contenido con una interfaz de usuario VCS escrita encima.
  10. ^ "¿Qué es Gitfs?". Presslabs . 24 de julio de 2015 . Consultado el 7 de marzo de 2022 .

Enlaces externos