Darcs

Darcs
darcs.net
darcs logo
Información general
Desarrollador(es)David Roundy
Lanzamiento inicial3 de marzo de info)
Última versión estable2.10.2
09 de noviembre de 2015
GéneroControl de versiones
Programado enHaskell
Sistema operativoUnix, GNU/Linux, BSD, Mac OS X, Windows
LicenciaGNU GPL
En españolNo

Darcs es un sistema de control de versiones distribuido creado por David Roundy. Las características clave son: la habilidad de escoger que cambios aceptar de otros repositorios, interacción con otros repositorios locales (en disco) o repositorios remotos vía SSH, HTTP o correo electrónico, y una inusual interfaz interactiva. Los desarrolladores también hacen hincapié en el uso de herramientas de software avanzadas para la verificación de la corrección: el sistema de tipo expresivo del lenguaje de programación funcional Haskell hace cumplir algunas propiedades, y las pruebas al azar a través de QuickCheck verifica muchos otros.[3]


Modelo

Darcs trata los parches como ciudadanos de primera clase. Para el usuario, un repositorio puede ser visto como un conjunto de parches, donde cada parche no es necesariamente requerido con relación a otros parches es decir, el conjunto de parches es sólo un conjunto parcialmente ordenado. En muchos casos, los parches pueden ser transmitidos de forma independiente entre varios repositorios.

Muchas operaciones de ramificación, fusión y cherry-picking que requieren comandos adicionales con sistemas basadas en snapshots como Git o Mercurial, se pueden hacer directamente con Darcs con los comandos comunes "pull" y "push". En cuanto a la interfaz de usuario, esto significa que Darcs tiene menos comandos. Además estos comandos son más interactivos ya que se puede elegir con más precisión que parches se quiere intercambiar con repositorios remotos.

En el sistema de archivos, los parches de un repositorio están ordenados linealmente. Darcs calcula automáticamente si los parches se pueden reordenar (una operación llamada conmutación), y la forma de hacerlo. Estos cálculos implementar la llamada "teoría de parches".

Un parche Darcs puede contener cambios de los siguientes tipos:

  • Cambios en las líneas
  • Creación y eliminación de archivos y directorios
  • Movimiento de archivos y directorios
  • Sustitución de palabras (utilizado normalmente en la refactorización de código, por ejemplo, cambiar el nombre de todas las apariciones de "foo" en un archivo determinado)

La noción de dependencia entre los parches se define sintácticamente. Intuitivamente, un parche B depende de otro parche A si A proporciona los contenidos que B modifica. Esto significa que los parches que modifican diferentes partes del código se consideran, de forma predeterminada, independientes. Para hacer frente a los casos en que esto no es deseable, Darcs permite al usuario especificar dependencias explícitas entre parches.

Desde la versión 2.10, Darcs usa patience diff por defecto.

Other Languages
Deutsch: Darcs
Ελληνικά: Darcs
English: Darcs
suomi: Darcs
français: Darcs
polski: Darcs
русский: Darcs
svenska: Darcs
українська: Darcs