Practica mfs
TAREA
COMPARATIVA DE SISTEMA DE CONTROL DE VERSIONES
Git
Descripción:
GIT es un sistema distribuido de control de versiones, gratuito y que en los últimos años está incrementando su cuota de usuarios considerablemente.
GIT nace como una necesidad para el desarrollo del kernel de Linux, desarrollado inicialmente por el propio Linus Torvalds,que deseaba un sistema rápido, eficiente y distribuido. Así nace GIT como un conjunto de scripts escritos en perl y shell scripts, que posteriormente han ido siendo migrados a C.
Se organiza como un sistema de ficheros distribuido, que puede tener o no un repositorio central. Por eso, está optimizado sobre todo para grandes árboles de directorios, siendo capaz de reconocer en qué punto delárbol se encuentra y sin tener problemas a la hora de mover directorios o ficheros.
Características:
* Fuerte apoyo al desarrollo no-lineal, lo que implica: rapidez en la gestión de ramificaciones y mezclado de diferentes versiones. Incluye herramientas específicas para navegar y visualizar un historial de desarrollo no-lineal.
* Gestión distribuida: Se da da a cada programadoruna copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramificaciones adicionales y pueden ser fusionados en la misma manera que se hace con la ramificación local.
* Cuando se crea una nueva versión no se crean deltas de diferencias, sino un nuevo árbol. Cuando se diferencian dos versiones se traen ambosárboles y se comparan. Esto es eficiente porque solamente se almacenan los ficheros y directorios idénticos una sola vez, y se transfieren los contenidos de forma comprimida.
* Los almacenes de información pueden publicarse por HTTP, FTP, rsync o mediante un protocolo nativo, ya sea a través de una conexión TCP/IP simple o a través de cifrado SSH. Git también puede emular servidores CVS, lo quehabilita el uso de clientes CVS pre-existentes y módulos IDE para CVS pre-existentes en el acceso de repositorios Git.
* Gestión eficiente de proyectos grandes, dada la rapidez de gestión de diferencias entre archivos.
* Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio.
* Resulta algo más carotrabajar con ficheros concretos frente a proyectos, eso diferencia el trabajo frente a CVS, que trabaja con base en cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones similares en varios archivos.
* Realmacenamiento periódico en paquetes (ficheros). Esto resulta eficiente para escritura de cambios y relativamente ineficiente para lectura si elreempaquetado (con base en diferencias) no ocurre cada cierto tiempo.
* Maneja cuatro tipos de objetos fundamentales en la base de datos:
* BLOB: Contenidos de los ficheros. Solamente los contenidos, no los metadatos. Si hay dos ficheros con distinto nombre e igual contenido, solamente se almacena 1 blob.
* TREE: Estructura de directorios. Contiene, para cada directorio, quéficheros (blobs) y subtrees contiene. Es, por tanto, una estructura arbórea y recursiva.
* COMMIT: Puntero a un árbol (del cual se hizo commit). Contiene autor, committer, message y parent commits que lo preceden, de manera que cada commit apunta al commit que lo precede.
* TAG: Es algo así como el alias del commit, con información extra: objeto commit al que apunta, tipo, comentario...Este objeto es probablemente el de menor trascendencia de los cuatro explicados.
* Consta de dos tipos de comandos: de porcelana, típicos de un usuario habitual, y de fontanería: comandos avanzados de bajo nivel.
CVS
Descripción:
CVS es un sistema de gestión de versiones, diseñadas para proyectos de software. Con CVS pueden existir varios usuarios trabajando en el...
Regístrate para leer el documento completo.