GIT manejador de versiones - Primeros pasos.. [I/III]

4 comments
Los siguientes días estaremos con 3 entregas mas que un manual o tutorial llegara a ser una guia practica del uso de GIT viendo un poco y haciendo un par de pruebas el motivo de ello es que comenzare a usar mas github, ademas de ello necesito aprender, en esta primera entrada sera netamente teoria que es un manejador de versiones  y demas trajes asi que comenzamos.




Cuando trabajamos solos es facil y simple codificar un proyecto porque solo tu tocas el codigo y listo algo facil no tenemos porque preocuparnos pero que sucede, cuando hay otra persona mas que trabaja contigo y el proyecto no se sabe quien toco quien que hizo cada uno o que modifico la otra persona ahí ya viene un pequeño problema


Estos problemas y para tener un mejor control lo veremos en los post que vienen.

¿Para que se usa un control de versiones?

Un control de versiones, o revisiones es usado para un flujo de trabajo, si un va y ven de codigo que pasa entre un equipo de desarrolladores programadores, para comunicar avisar a los demas sobre su trabajo compartir el código tener versiones funcionales para ser usadas en cualquier momento puestas en producción, ayuda a manejar cambios importantes en el código teniendo un seguimiento y flujo del mismo y si alguien mata el código pues ya se tiene a quien echar la culpa :) si mas de una vez me echaron toda la culpa  a mi porque rompi código no hice bien un merge.


Que no es un control de versiones



Eso mismo no me digan que ustedes hacer un control de versiones, eso de agarrar y darle un copy paste y cambiar nombres para tener un control asi que si esta es tu idea olvidate!!! :).


¿Qué es el control de versiones?

Ha estas alturas ya debiste de dar cuenta que es un control de versiones, lo hare simple y facil controla y maneja un versionamiento, seguimiento continuo teniendo un historial completo de los files de un proyecto si se rompe algo o no funciona correctamente nos permite realizar un rollback e ir a la version funcional del mismo,  teniendo un control perfecto del mismo algo que note es que se maneja identificador en mi caso que uso a diario Mercurial note que en Tortoise existe un id un codigo el cual no se como raoyos es generado pero a lo que saque es que por medio de el se tiene una bitacora, existen controladores de versiones para todos los gustos a continuación una lista:


Código abierto

  • Concurrent Versions System (CVS) — basado originalmente en RCS, licenciado mediante GPL
    • CVSNT — basado en CVS
    • OpenCVS — clon CVS bajo licencia BSD, con énfasis en seguridad y correcto uso del código fuente
  • Subversion (svn) — inspirado en CVS
  • Vesta — sistema de construcción con soporte para versionado de ficheros en repositorios distribuidos

Propietario

  • AccuRev – herramienta para gestión de la configuración de código fuente que integra un gestor de incidencias basado en flujos que maneja de forma eficiente desarrollo paralelo a escala global; también contempla un servidor para replicación
  • CA SCM – herramienta para gestión de cambios y configuración de Computer Associates
  • Autodesk Vault – herramienta de control de versiones diseñada específicamente para aplicaciones Autodesk que gestionan las relaciones complejas entre ficheros de diseño elaborados por AutoCAD y Autodesk Inventor.
  • ClearCase – sistema de gestión de configuración -compaltible con VSS- fabricado por Rational Software (IBM)
  • codeBeamer – plataforma colaborativa para la gestión del ciclo de vida de aplicaciones
  • Configuration Management Version Control (CMVC) – sistema de control de versiones de IBM, retirado
  • Global Design Platform (GDP) – gestión de diseño de cirtuitos integrados
  • MKS Integrity - sistema para gestión del ciclo de vida de aplicaciones software
  • Perforce – herramienta con intuitivo interfaz gráfico, configuración avanzada para funcionamiento en arquitecturas de red complejas -proxy, máster-réplica, broker- yfuncionamiento off-line, así como interfaz con los IDEs más extendidos y aplicable a documentos no ASCII
  • PVCS – originalmente llamado Polytron Version Control System, fue desarrollado por Don Kinzer para Polytron y lanzado en 1985, ahora pertenece a Serena.
  • Quma Version Control System - solución para Windows de muy bajo coste
  • SourceAnywhere – herramienta de control de versiones por Dynamsoft.
  • StarTeam – coordina y gestiona los procesos de distribución de software de Microfocus -anteriormente Borland- un control centralizado de activos digitales
  • Telelogic Synergy – gestor de cambios integrado compatible con SCC y gestor de configuración basado en tareas, de IBM
  • Vault – herramienta de control de versiones de SourceGear (primer uso gratis)
  • Visual SourceSafe – herramienta de control de versiones de Microsoft; orientada a equipos pequeños
  • Visual Studio Team Foundation Server (anteriormente Team System) – orientada a Plataforma .Net.

Modelo Distribuido

Código abierto

  • Aegis - escrito por Peter Miller, es un programa maduro, orientado a sistemas de ficheros, con soporte de red limitado
  • ArX - escrito por Walter Landry, empezó como una rama de GNU arch, pero ha sido totalmente reescrito
  • Bazaar - escrito en Python por Martin Pool y patrocinado por Canonical es un sistema descentralizado, que intenta ser rápido y fácil de usar
  • Codeville - escrito en Python por Ross Cohen; usa un algoritmo de injerto innovador
  • Darcs - escrito en Haskell y desarrollado originalmente por David Roundy, puede llevar el seguimiento de dependencias inter-parche y reagruparlas automáticamente y escogerlas usando "teoría de parches"
  • DCVS — CVS descentralizado
  • Fossil - escrito por Richard Hipp para SQLite, presenta un control de versiones distribuido, wiki y seguimiento de fallos
  • Git - escrito en una combinación de Perl, C y varios scripts de shell, estuvo diseñado por Linus Torvalds según las necesidades del proyecto del kernel de Linux; con los requisitos de descentralización, rápido, flexible y robusto
  • GNU arch - descontinuado, sustituido por Bazaar
  • LibreSource — gestión de configuración
  • Mercurial — escrito en Python como un recambio en software libre de Bitkeeper; descentralizado, que pretende ser rápido, ligero, portable y fácil de usar
  • Monotone — descentralizado y funcionando en modo P2P
  • SVK — escrito en Perl por Kao Chia-liang en base a subversion permitiendo hacer commit distribuidos

Propietario

  • BitKeeper — usado en el desarrollo del Núcleo de Linux (2002 – Abril 2005)
  • Code Co-op — sistema de control de versiones P2P (puede sincronizar mediante e-mail)
  • Sun WorkShop TeamWare — retirado, reemplazado por BitKeeper
  • Plastic SCM — por Codice Software, Inc

Hablamos de control de versiones y hay tipos si es verdad  los cuales son dos tipos centralizado y distribuidos.

El centralizado todos tienen que trabajar conectados al repositorio central para poder tener información de la linea del tiempo del proyecto mismo, aqui se puede configurar para que se realice un bloqueo específico de un archivo para que no sea tocado por nadie hasta que lo termine de realizar, del mismo modo si existe un conflicto se realiza el merge lo cual sabremos que es mas adelante

En el distribuido todos tienen una copia del repositorio, y pueden trabajar de manera offline sin estar conectado, existe para esto cierto tipos de modelos o técnicas para trabajar.

Ya que ando comenzando específicamente con uno de ellos el cual es git en los post abordaremos  especificamente este, son parecidos todos ellos pero con pequeñas diferencias ya ire contando este cambio de mercurial a git cual son las ventajas y demas desde un punto personal

Mas información sobre lo que es un control de versiones  puedes iniciar tu solo el viaje o esperar el dia de mañana con la segunda entrega .



GIT manejador de versiones - Primeros pasos.. [I/III]



GIT manejador de versiones - GIT y GITHub.. [II/III]





4 comentarios

  1. Hola. Buen artículo. Justo es lo que estaba buscando: usar Git. Pero te faltaría poner signos de puntuación y acentos, porque la mayoría del texto resulta confuso leerlo.

    Un abrazo desde Ushuaia!!!

    ResponderEliminar
  2. Gracias el post lo escribir en la flota mientras estaba viajando desde el móvil XD por no perder la secuencia de una entrada por día en el blog, hoy por la noche mientras sale la siguiente entrada lo corrijo gracias por la visita y la sugerencia.

    Saludos

    ResponderEliminar
  3. Jo, Creeme que en la U copian el archivo y le ponen programa_1.1.1.1... pobres mortales xD

    ResponderEliminar
  4. xDD @drkpkg si conosco algunas personas que hacen lo mismo :P es mejor aprender a usar este tipo de herramientas :)

    ResponderEliminar