Diferencia entre revisiones de «Darcs»

Contenido eliminado Contenido añadido
Sin resumen de edición
Sin resumen de edición
Línea 34:
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.
 
MuchosMuchas operaciones de ramificación, la fusión y las operaciones de la cereza ''cherry-picking cosecha ''que requieren comandos adicionales con sistemas basadas en instantáneas''snapshots'' como [[GIT|Git]] o [[Mercurial]] , se puedepueden hacer directamente con Darcs con los comandos de "presión",comunes "''pull''" de costumbre y "''push''". En cuanto a la interfaz de usuario, esto significa que Darcs tiene menos Darcs comandos . TambiénAdemás estos comandos son más interactivos ya que se puede elegir con más precisión que los parches quese quierenquiere 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 parcheparches".
 
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 en movimiento
* sustitución de palabras (utilizadosutilizado normalmente en la refactorización de código, por ejemplo, cambiar el nombre de todas las apariciones de '"foo' a 'bar'" 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 , independienteindependientes. Para hacer frente a los casos en que esto no es deseable , Darcs permite al usuario especificar dependencias explícitas entre parches.
 
==Historia==
Darcs evolucionaron a partir de los esfuerzos de David Roundy para diseñar un nuevo formato de parche para [[GNU arch]] en junio de 2002. Estas discusiones no llevaron a ningún código que se está comprometido con ArcoArch, pero dieron lugar a su teoría de parches. Después de escribir una primera versión de Darcs en [[C++]], la versión [[Haskell]] fue escrito en otoño de 2002 y lanzado al público en abril de 2003. Darcs 2.0 ya lanzado en abril de 2008 e introdujo un formato de repositorio más robusto y una nueva semántica de parches llamados darcs - 2 , con el objetivo de minimizar los problemas de combinaciónfusión de exponenciales. La línea actual de desarrollo contiene muchas optimizaciones y nuevas características , manteniendo el mismo formato de repositorio.
 
==Deficiencias==
Darcs ha sido criticado por motivos de rendimiento. La peor de estas cuestiones fue el Darcsalgoritmo fusionarde algoritmofusión de Darcs 1.x que, en el peor de los casos, podría hacer un trabajo exponencial de fusionar algunos conflictos. Aunque el tema no ha sido completamente corregida en Darcs 2, fusionalas exponencialesfusiones seexponenciales han minimizadosido minimizadas. Errores aúnAún permanecen errores en lael que la fusión de los conflictos recurrentes falla.
 
==Referencias==