GCS Git Mercurial

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

Universidad Técnica Estatal de Quevedo

Facultad de Ciencias de la Ingeniería

Integrantes: Vera Jordan, Moreira Luis, Manzaba Iván, Baren Rosa, Litardo Heydi

Sistemas de control de versiones


1. Introducción

En el mundo del desarrollo de software, la gestión de versiones es una parte


fundamental para garantizar un control efectivo de los cambios realizados en el código fuente
de un proyecto a lo largo del tiempo. Los gestores de versionamiento son herramientas
diseñadas para facilitar esta tarea, permitiendo a los equipos de desarrollo colaborar de
manera eficiente, mantener un historial de cambios y revertir modificaciones en caso de ser
necesario.

Un gestor de versionamiento, también conocido como sistema de control de versiones


(VCS por sus siglas en inglés), es un software que rastrea las modificaciones realizadas en los
archivos de un proyecto a medida que evoluciona. Estas herramientas ofrecen una serie de
funcionalidades esenciales para el desarrollo de software, como el seguimiento de cambios, la
ramificación y fusión de código, la gestión de conflictos y la colaboración en equipo.

2. Git

Git es un sistema de control de versiones distribuido extremadamente versátil y


potente. Su enfoque descentralizado, su capacidad para trabajar con ramas y su amplia
comunidad de usuarios hacen de Git una herramienta esencial para el desarrollo de software
moderno. Ya sea para proyectos personales, colaborativos o empresariales, Git proporciona
un control efectivo de versiones y facilita la colaboración en equipo de manera eficiente.
2.1. Modelo de repositorio requerido por el proyecto

El modelo de repositorio requerido por nuestro proyecto debe ser distribuido esto es
porque la aplicación trabaja juntamente con entornos separados, normalmente en diferentes
plataformas conectadas a través de una red como es móvil, un dispositivo y web para esto
añadiremos una foto de nuestro repositorio.

Plataformas como GitHub, GitLab y Bitbucket ofrecen servicios de alojamiento de


repositorios Git en la nube, lo que facilita la colaboración en proyectos de código abierto y
privados.

Figura 1. Vista de proyecto alojado en el repositorio


Figura 2. Clonar un repositorio Git

Figura 3. Lista de repositorios

 2.2 Modelo de concurrencia

Trabajar en ramas y fusionar cambios: Git te permite trabajar en diferentes ramas para
desarrollar nuevas características o solucionar problemas sin afectar la rama principal del
proyecto. Como podemos ver Git permite crear una nueva rama utilizando el comando git
branch y cambiar a ella con git checkout. Luego, puedes hacer commits en esa rama y
fusionar los cambios con la rama principal (con el comando merge) cuando estén listos.

Git también proporciona un mecanismo robusto para manejar conflictos cuando dos o
más personas realizan cambios simultáneamente en el mismo archivo. Si se produce un
conflicto, Git notifica al usuario y permite resolverlo manualmente. Esto asegura que los
cambios se fusionen de manera controlada y se evite la pérdida de trabajo.

Figura 4. Creación de una nueva rama


Figura 5. Fusión de ramas

2.3 Integración con la plataforma de desarrollo

En lo que respecta a la integración de Git. Esta ya viene por defecto en algunas


plataformas al igual que en nuestro caso que se trabajó con Visual Studio Code solo tuvimos
que utilizarla, lo que facilita aún más la gestión del proyecto utilizando Git directamente
desde el entorno de desarrollo.

Figura 6. Acceso de Git desde Visual Studio Code

2.4 Generación de informes de los cambios introducidos entre dos versiones

La extensión Git Graph en Visual Studio Code ofrece una interfaz gráfica que facilita
la visualización de los cambios y la generación de informes entre diferentes versiones de un
proyecto. Además de esto, también puedes utilizar la línea de comandos de Git en la terminal
integrada de Visual Studio Code para generar informes de diferencias utilizando los
comandos de Git. Un ejemplo de esto podemos verlo en la imagen de abajo.
Figura 7. Generación de informe de cambios entre dos versiones

2.5 Generación de informes de estado del repositorio.

Git siempre nos indica el estado de repositorio, haciéndonos saber archivos nuevos,
archivos modificados, archivos eliminados y también en que archivos existen conflictos por
fusión de ramas. Con la opción que viene instalada en Visual Studio Code, podemos ver
todos estos cambios realizados en nuestro proyecto, también nos ofrece información y
opciones para estos archivos.

Figura 8. Generación de informe de estado del repositorio


Con el comando de ‘git status’ también podemos ver todos los cambios que se han
realizado en nuestro proyecto y nos da sugerencias de lo que debemos realizar. En este
ejemplo nos dice que se ha modificado un archivo y que podemos agregarlo y posteriormente
confirmarlo.

Figura 9. Salida por consola del estado de la consulta

2.6. Generación de informes de los cambios introducidos entre la versión


actual y la anterior

Git utiliza un modelo de datos basado en instantáneas (snapshots) en lugar de un


modelo basado en diferencias. Esto significa que, en lugar de almacenar cambios entre
versiones individuales de archivos, Git guarda una instantánea completa de todo el estado del
proyecto en ese momento. Esto permite un acceso rápido y eficiente al historial y simplifica
el proceso de fusionar ramas y revertir cambios.

En los siguientes ejemplos se puede observar los cambios de una versión y otra. Git
nos indica exactamente las modificaciones que se ha hecho, y con las diversas herramientas
se puede ver de manera gráfica estos cambios.
Figura 10. Errores y cambios entre la versión actual y la anterior, desde el proyecto en local

Figura 11. Errores y cambios entre la versión actual y la anterior, desde el repositorio Github

3. Mercurial

Mercurial es una plataforma de gestión de versiones distribuida de código abierto, sin


costo, que se asemeja a Git o Bazaar. Todos estos sistemas rompen con el enfoque
convencional de los repositorios basados en el modelo cliente/servidor, como CVS o
Subversión.
Mediante la herramienta de TortoiseHg se puede crear un nuevo repositorio o a su vez
clonar uno existente.

De manera similar a otros sistemas de control de versiones distribuidos, como Git,


Mercurial posibilita a los desarrolladores disponer de una réplica completa del repositorio en
sus propias máquinas locales. Esto implica que pueden llevar a cabo su trabajo de forma
autónoma y efectuar modificaciones en su entorno personal antes de unificarlos con el
repositorio principal.

3.1. Modelo de repositorio requerido por el proyecto

El proyecto que se ha seleccionado para trabajar en un control de versiones requiere


un modelo distribuido. Actualmente, Mercurial cuenta con un repositorio distribuido, en
donde cada desarrollador es capaz de poseer una copia del sistema, de manera completa,
incluyendo los cambios y archivos de la máquina local.

Cada copia del repositorio en Mercurial es un repositorio completo en sí mismo, lo


que significa que puede llevar a cabo operaciones como confirmar cambios, crear ramas y
fusionar ramas localmente.

3.2. Modelo de concurrencia

Dentro de Mercurial, cada desarrollador puede crearse una rama y trabajar de manera
individual, apuntando hacia un mismo repositorio. Este sistema de control de versiones
permite aplicar acciones como:

 Crear una rama, lo que crea una nueva línea de desarrollo.


 Cambiarse de una rama a otra, para hacer cambios específicos.
 Fusionar ramas, lo que permite combinar cambios de otros desarrolladores.
 Visualizar las ramas y la disponibilidad de estas, dentro del repositorio.
Figura 12. Creación de repositorio

Para poder crear un nuevo repositorio debemos indicar la ruta de destino de nuestro
repositorio como se muestra en la Figura.

Figura 13. Creación de repositorio (2)

Una vez que tengamos creado nuestro repositorio es momento de crear el primer
commit para poder subir el repositorio, se debe realizar como se muestra a continuación:

 Primeramente, se debe marcar el check de los archivos esto será el comando “hg add”.
 Luego asignamos un mensaje para el commit y confirmamos en el botón “Consignar”.
Figura 14. Primer "commit"

Una vez haya realizado este proceso se mostrará el registro del repositorio, aquí se
observa un gráfico, la rama en la que surgió el cambio, el mensaje que incluyo el usuario y el
autor de aquel cambio.

Figura 15. Historial de commits (versiones)

Finalmente podemos observar que a cada cambio implementado podemos realizarle


diferentes acciones, algo que es muy útil es poder retornar al código de ese cambio.
Figura 16. Opción para volver a una versión anterior

Por último, tenemos una ventana de información que se abrirá cada vez que se dé
doble click sobre el cambio realizado la cual nos mostrará la información del cambio, junto
con las partes que fueron modificadas para tener una mejor revisión.
Figura 17. Información de cambios realizados

4. Conclusiones

En conclusión, los gestores de versionamiento, como Git y Mercurial, desempeñan un


papel fundamental en el desarrollo de software. Estas herramientas permiten a los equipos de
desarrollo controlar y gestionar eficientemente los cambios en el código fuente a lo largo del
tiempo.

Git, siendo uno de los sistemas de control de versiones más populares, destaca por su
enfoque distribuido y su amplia comunidad de usuarios. Proporciona una forma flexible y
eficiente de trabajar en paralelo, crear ramas, fusionar cambios y gestionar conflictos.
Además, plataformas de alojamiento en la nube, como GitHub, facilitan la colaboración y el
intercambio de código entre desarrolladores.

Por otro lado, Mercurial se destaca por su enfoque en la simplicidad y la facilidad de


uso. Ofrece una interfaz intuitiva y herramientas claras para el seguimiento de cambios, la
creación de ramas y la gestión de conflictos. Mercurial es una opción popular para aquellos
que buscan una herramienta de control de versiones potente, pero con una curva de
aprendizaje más suave.

Tanto Git como Mercurial brindan beneficios significativos a los equipos de


desarrollo, como el control riguroso de versiones, la capacidad de trabajar en paralelo de
forma colaborativa, la reversión de cambios no deseados y la facilitación de la colaboración
en equipo.

También podría gustarte