Rift: una alternativa rápida a git worktrees con copy-on-write

Fuentes: Rift: a better alternative to git worktrees
Imagen generada por IA con el prompt: A developer's terminal displaying rift commands, with abstract snapshots representing fast copy-on-write clones, clean and modern design, no logos or text.
Imagen generada con IA

Rift es una herramienta de línea de comandos diseñada para gestionar espacios de trabajo (workspaces) de forma eficiente, presentándose como una alternativa superior a git worktrees. Desarrollada por anomalyco, se basa en el concepto de copy-on-write (copiar al escribir), lo que permite crear instantáneas de directorios de forma casi instantánea (menos de 0.1 segundos en carpetas de 10 GB) y con un ahorro significativo de espacio en disco. Compatible con Linux (sistemas de archivos btrfs) y macOS (APFS), ofrece un rendimiento optimizado; en Linux, convierte un directorio normal en un subvolumen btrfs, mientras que en macOS utiliza clonefile de APFS. En Windows, aún no hay soporte para crear espacios de trabajo.

La herramienta proporciona una interfaz CLI rápida y también se puede utilizar como biblioteca FFI desde Bun o Node.js. Su instalación es sencilla mediante npm o bun: npm install -g rift-snapshot. Entre sus comandos principales se incluyen: rift init (inicializa un directorio como raíz de Rift), rift create (crea un nuevo espacio de trabajo a partir de uno existente), rift list (lista los espacios de trabajo activos), rift remove (elimina un espacio de trabajo moviéndolo a una papelera) y rift gc (libera espacio eliminando definitivamente los elementos en la papelera). Además, ofrece integración con el shell (zsh o bash) para cambiar de directorio automáticamente después de ciertas operaciones.

Cada espacio de trabajo gestionado contiene un marcador .rift con un identificador único, y un registro SQLite almacena las rutas, identificadores padres y entradas de la papelera. Por defecto, los espacios de trabajo creados se almacenan en un directorio contiguo a la raíz de origen, por ejemplo, ~/code/app/ para el origen y ~/code/.rifts/app/ para los espacios de trabajo. La biblioteca JavaScript exporta funciones como create, list, remove y gc, que requieren Node.js 26.1 o posterior con flag experimental --experimental-ffi.

Limitaciones: actualmente solo funciona en Linux con btrfs y macOS; Windows no tiene implementación de creación de espacios de trabajo. La herramienta está publicada bajo licencia MIT y se puede compilar desde el código fuente usando Cargo. Su principal ventaja es la velocidad y eficiencia en el manejo de múltiples versiones de un proyecto, ideal para desarrolladores que trabajan con varias ramas o entornos simultáneamente.