Open Menu dzosoft
Close Menu dzosoft

   TODO SOBRE INFORMÁTICA Y TECNOLOGÍA


                             







 
 
 

Git vs SVN: control de versiones centralizado y distribuido

 

 
Git vs SVN: control de versiones centralizado y distribuido
 

Para obtener una visión general de los cambios realizados en documentos o archivos, existen los llamados controles de versión. Estos guardan todas las versiones generadas por un procesamiento, incluida la identificación de usuario y la marca de tiempo, en un archivo, de modo que los estados anteriores de los datos individuales puedan recuperarse o recuperarse. Para ello es posible ver qué usuarios han realizado cambios en un momento dado. Los objetivos pretendidos de un sistema de este tipo son coordinar el acceso común de diferentes usuarios a los archivos y permitir el desarrollo simultáneo de diferentes ramas (desarrollo de ramas y divisiones).

Los controles de versión en el desarrollo de software generalmente se usan para aplicaciones de oficina y CMS. Entre los programas más famosos para el control de versiones se encuentran Apache Subversion (SVN) y Git, que pueden instalarse en su servidor o solicitarse a un proveedor. El servicio de hospedaje más famoso para proyectos Git es GitHub , mientras que el hospedaje de Subversion lo ofrece, por ejemplo, RiouxSVN . En servicios como SourceForge es posible alojar ambos sistemas.

 

SVN: El sucesor de CVS diseñado por CollabNet

 
El software gratuito Subversion fue desarrollado a principios de la década de 2000 por CollabNet y casi cuatro años después se lanzó su primera versión. Por lo tanto, SVN fue el sucesor de CVS (Sistema de Versiones Concurrentes), ahora ya no implementado. En 2009, el proyecto pasó a la Apache Software Foundation, de ahí su nombre Apache Subversion.

SVN utiliza un sistema de control de gestión central. Esto significa que hay una carpeta (repositorio) a la que todos los usuarios pueden acceder. Dado que los cambios que realice no se pueden fusionar, el sistema evita que dos usuarios procesen el mismo archivo al mismo tiempo. Así, el archivo se asigna al primer usuario que accede a él y durante el procesamiento se marca para los demás usuarios como "protegido contra escritura". Apache Subversion también ofrece la posibilidad de descargar y procesar cualquier ruta secundaria independientemente del resto del árbol de rutas. Para esto, es posible asignar diferentes permisos de lectura y escritura a diferentes lectores para todas las rutas. Además, Subversion se caracteriza por el hecho de que es posible grabar carpetas vacías, renombradas y movidas incluso sin perder el historial.
control de versiones centralizado y distribuido
 

Git: solución de emergencia para desarrolladores del kernel de Linux

 
El creador de Linux, Linus Thorvalds, comenzó en abril de 2005 (más o menos sin querer) el desarrollo de un nuevo software de control de versiones. El motivo fue que debido a un cambio en la licencia del BitKeeper utilizado hasta el día de hoy, los desarrolladores del kernel de Linux perdieron su libre acceso. El nuevo sistema debería ofrecer procesos similares como BitKeeper y seguridad contra cambios accidentales o intencionales y también garantizar una alta eficiencia. Solo unos días después, Thorvalds presentó la primera versión de Git.

Git es un sistema de control de gestión distribuido. De hecho, existe un repositorio central, donde convergen todos los cambios, incluso si todos los usuarios descargan sus copias de trabajo. Sin embargo, tienen acceso a todo el repositorio, incluido el historial localmente, y no necesitan estar constantemente conectados a la red. Además, los cambios se envían muy rápido en el repositorio principal. Por lo tanto, Git no ofrece ningún sistema de bloqueo, sino que cada usuario crea sus propias ramas que luego se cargan en el repositorio central; generalmente cada usuario recibe permisos de lectura y escritura para el directorio (sin embargo, si existen varios permisos, se deben crear varios directorios raíz). Cada copia de trabajo es una copia de seguridad independiente del directorio raíz, lo cual es muy recomendable en caso de que se produzca un fallo o se dañe. Git solo registra el contenido de los directorios, ya que los directorios vacíos se eliminan automáticamente.

 

SVN vs Git: sistemas comparados

 
Pero, ¿cuál es la mejor solución entonces? No hay una respuesta genérica. Depende de qué sistema de control de gestión se adapte mejor a sus propósitos. Ambos sistemas difieren en estructura y en el proceso resultante. La siguiente tabla resume las principales diferencias:

Extensión SVNGit
Control de versionesCentralDistribuido
Repositorios Repositorio central donde se crean las copias de trabajo Copias locales del repositorio con las que puede trabajar
Permiso de acceso Basado en ruta En todo el directorio
Ver cambios Grabar archivos Grabar contenido
Historial de cambios Completo solo en el repositorio, las copias de trabajo contienen solo la última versiónLos repositorios y las copias de trabajo contienen el historial completo
Conexión de red En cada acceso Solo necesaria para sincronizar

Estas son las ventajas respectivas de ambos sistemas:

 

Deberías preferir Git si

 

 No desea estar conectado todo el tiempo para que pueda trabajar en su proyecto desde cualquier lugar.
 Quiere sentirse seguro en caso de que se produzca una falla en el repositorio central o una pérdida de datos.
 No necesita permiso de lectura y escritura para directorios especiales (sin embargo, estos también se pueden configurar en una ruta más compleja con Git).
 Dar mayor importancia a la transmisión rápida de cambios.

 

Subversion es la mejor opción si

 

 Necesita permisos de acceso basados ​​en rutas para diferentes áreas de su proyecto.
 Desea vincular todo su trabajo a una ubicación central.
 Trabajas con muchos archivos binarios.
 Desea registrar completamente las estructuras de directorios vacías (Git las elimina, ya que no tienen contenido).

Si las características enumeradas no son de importancia decisiva para usted, se recomienda una prueba de ambos sistemas de control de versiones. En ambos casos, tiene garantizado un buen soporte de una gran comunidad, un proveedor confiable como GitHub y ofertas de soporte profesional.

También te puede interesar


Cómo usar Git y GitHub: Guía para principiantes

Cómo configurar un repositorio SVN gratuito

Realice un seguimiento de sus cambios con el mejor software de control de versiones


Leave comment
          

Guardar apodo y correo electrónico en este navegador para la próxima vez.



Cargando...