martes, 19 de agosto de 2008

Nuevo manual de Git.

Ha sido publicado un nuevo manual de Git (en inglés) escrito por Ben Lynn y titulado Git Magic. Es mucho más fácil de entender que el manual de usuario oficial de Kernel.org. Para quienes desconozcan acerca de Git, se trata de un equipamiento lógico (software) que consiste en un sistema de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y confiabilidad de mantenimiento de versiones de aplicaciones con una enorme cantidad de archivos de código fuente.

El diseño de Git se basó sobre BitKeeper y en Monotone. En principio, Git se pensó como un motor de bajo nivel que otros pudieran usar para frentes como Cogito o StGIT. Sin embargo, Git se ha convertido desde entonces un sistema de control de versiones con funcionalidad plena. Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo del sistema operativo Linux.

El diseño de Git resulta de la experiencia del creador del núcleo de GNU/Linux, Linus Torvalds, manteniendo una enorme cantidad de código distribuida y gestionada por mucha gente, que incide en numerosos detalles de rendimiento, y de la necesidad de rapidez en una primera implementación.

Entre las características más relevantes (no necesariamente positivas) se encuentran:

  • Fuerte incidencia en la no linealidad de los cambios, por ende rapidez en la gestión de ramificaciones y mezclado de diferentes versiones.
  • Gestión distribuida. Los cambios se importan como ramificaciones, y pueden ser mezcladas en la manera en que lo hace una ramificación del almacenamiento en local.
  • Los almacenes de información pueden publicarse por HTTP, FTP, SSH, rsync o mediante un protocolo nativo, aparte de ser posible emular CVS.
  • Gestión eficiente de proyectos grandes, dada la rapidez de gestión de diferencias entre archivos, entre otras mejoras de optimización de velocidad de ejecución.
  • Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en Monotone.
  • Resulta algo más caro trabajar con ficheros concretos frente a proyectos, eso diferencia el trabajo frente a CVS, que trabaja en base a cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones similares en varios archivos.
  • Los renombrados se trabajan en base a similitudes entre ficheros, aparte de nombres de ficheros, pero no se hacen marcas explícitas de cambios de nombre en base a supuestos nombres únicos de nodos de sistema de ficheros, lo que evita posibles, y posiblemente desastrosas, coincidencias de ficheros diferentes en un único nombre.
  • Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y relativamente ineficiente para lectura si el reempaquetado (en base a diferencias) no ocurre cada cierto tiempo.

Manual disponible en este enlace. Fuente de los datos de esta nota: Wikipedia.

Ver artículo original

Publicado con El navegador Flock