This page looks best with JavaScript enabled

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

 ·   ·   6 min read

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- y_funcionamiento 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]

Share on
Support the author with

Avatar
WRITTEN BY