instalación y uso de entornos

personalización de entornos

Sistemas Control de Versiones

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

TRABAJAR sin UN SISTEMA CONTROL DE VERSIONES

Normalmente, cuando uno comienza a escribir sus propios programas, simplemente elige un entorno de programación que le guste y permita trabajar con el lenguaje de programación seleccionado, y empieza a codificar, sin más.

 

solo funcionaría cuando estamos trabajando individualmente

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

TRABAJAR sin UN SISTEMA CONTROL DE VERSIONES 

¡Muchos incovenientes!

  • No podemos compartir fácilmente nuestro trabajo.
  • No podemos volver a versiones anteriores.
  • Debemos hacer copias de seguridad manuales.
  • Debemos actualizarlas cada vez que modificamos.
  • Es muy complicado juntar los cambios hechos por varias personas que han modificado el mismo documento

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

TRABAJAR con UN SISTEMA CONTROL DE VERSIONES 

Todas estas dificultades pueden ser solventadas empleando un Sistema de Control de Versiones.

Existen muchos: Subversion, Mercurial o TFS.

No obstante, nosotros usaremos Git, dado que su popularidad es muy alta actualmente, es fácil de usar, y su enfoque distribuido nos aporta muchas ventajas.

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git 

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente.

Git tiene funcionalidad plena y es utilizado en proyectos de gran relevancia.

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git 

Lo primero que necesitamos hacer cuando empezamos a utilizar Git, es crear un repositorio: contenedor de nuestro proyecto.

Normalmente se crea un repositorio local, pero también sería interesante disponer de uno al que pudiéramos acceder desde cualquier lugar, para así poder trabajar en cualquier momento y desde cualquier equipo: repositorio remoto

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git 

Existen varias alternativas en Internet:

 

Github no permite crear repositorios privados, de forma gratuita solo permite públicos. Por lo que usaremos Bitbucket.

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

bitbucket

Lo primero que necesitamos es una cuenta en Bitbucket:

https://bitbucket.org/eugenia_perez

 

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git con netbeans

Vamos a crear un proyecto en nuestro equipo.

Abre Netbeans, y crea un nuevo proyecto.

Vete a la raíz del proyecto y pulsa en el menú de Team -> Git -> Initialize repository.

eugeniaperez.es

UT 2: personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

Nos pide seleccionar el repositorio donde queremos que sea creado, puede ser sobre la ubicación misma donde tenemos el proyecto. Así nos evitamos almacenar otra copia en disco.

 

eugeniaperez.es

Nuestro proyecto tiene asignado un repositorio,

pero no tiene aun nada almacenado

UT 2: personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

Ahora  vamos  a  guardar  nuestros  cambios  en  el  repositorio -> comando commit

Sobre el proyecto -> Git -> commit

Aquí introducimos comentarios que describan las actualizaciones que estamos realizando.

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

Como es la primera vez que subimos el proyecto:

 

eugeniaperez.es

Selecciona todos

los ficheros (más

adelante quitaremos

algunas librerías...)

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

Pulsamos en Commit ->salvamos nuestros cambios en el repositorio local.

Commit and Push además de hacer un commit al repositorio local, hace un push al repositorio remoto si lo hubiera, subiendo así los cambios introducidos.

 

eugeniaperez.es

Esta última opción suele dar problemas, así que lo haremos de otra manera.

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

En Git -> Show History,  seleccionamos como branch: master

Ya que es la única rama que tenemos hasta el momento.

Podremos  ver  el commit recién realizado. Nos mostraría un historial de las modificaciones.

 

 

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

Realiza  ahora  una  modificación  en  el proyecto. 

En  el  momento  en  que  salves  los cambios, el nombre del fichero se coloreará de azul, indicando que ha habido modificaciones con respecto a la última versión guardada en el repositorio. 

 

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

Podríamos utilizar el comando Git -> Diff (HEAD) para observar las modificaciones añadidas... 

 

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

 

 

eugeniaperez.es

Git -> Show History

Git -> commit

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

 

 

eugeniaperez.es

Git-> Show History

Desde aquí podremos pasarnos a versiones anteriores -> 

Botón derecho sobre el commit a cancelar y Revert Commit

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS

 

 

eugeniaperez.es

Git-> Show History

Revert Commit

- Checkout a un commit

- Checkout master -> para volver a la rama "original" master

 

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS y bitbucket

 

 

eugeniaperez.es

Por último, vamos a compartir este repositorio también en Bitbucket.

Para ello, crea uno nuevo: Repositories -> create repository

Vamos a llamarlos todos con un nombre lógico:

Modulo.UTn.Project

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS y bitbucket

 

 

eugeniaperez.es

Repositorio privado

Lenguaje Java

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS y bitbucket

Para obtener la URL del repositorio:

 

 

eugeniaperez.es

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS y bitbucket

 

 

eugeniaperez.es

Vete al Netbeans y pulsa la opción Git -> Remote -> Push.

Configura los parámetros de conexión a tu repositorio según corresponda:

personalización de entornos

Sistemas Control de Versiones (SCV)

git con NETBEANS y bitbucket

 

 

eugeniaperez.es

Por último, comprueba en Bitbucket que tu repositorio ha recibido correctamente todos los commits de tu repositorio local:

nos descargamos el proyecto de mi repositorio de bitbucket...

Si nos lo descargamos todos a la vez... Fallará...

personalización de entornos

Sistemas Control de Versiones (SCV)

DESCARGAR PROYECTOS git con NETBEANS

 

 

eugeniaperez.es

Para ello, lo primero que debo hacer es buscar la URL del proyecto a descargar en Bitbucket:

https://eugenia_perez@bitbucket.org/eugenia_perez/ed.ut4.3variables.git

Para descargar repositorios de mi cuenta utilizaremos:

  • usuario: cuatrovientos
  • password: Cuatrovientos 

personalización de entornos

Sistemas Control de Versiones (SCV)

DESCARGAR PROYECTOS git con NETBEANS

 

 

eugeniaperez.es

Vamos a Team -> Git -> Clone

Seleccionamos el repositorio donde se creará

Indicamos la URI y

las credenciales:

 

cuatrovientos

Cuatrovientos

personalización de entornos

Sistemas Control de Versiones (SCV)

DESCARGAR PROYECTOS git con NETBEANS

 

 

eugeniaperez.es

Le decimos a todo que siguiente y ya tendremos el proyecto importado...

Si ahora queremos hacer modificaciones  y posteriormente subirlo a  NUESTRO REPOSITORIO...

Realizaría el Git -> Commit en local como siempre...

Luego Git -> Remote ->Push y cambiaría la URL y las credenciales a las mías.

personalización de entornos

Sistemas Control de Versiones (SCV)

DESCARGAR PROYECTOS git con NETBEANS

 

 

eugeniaperez.es

Cabe destacar que se puede configurar la estrategia a seguir cuando se haga pull en el futuro.

Por defecto, viene marcada la opción de realizar un merge entre lo que hay en el repositorio local y el remoto para fusionar los cambios.

Alternativamente se ofrece la opción de hacer un rebase.  Esta no es recomendada puesto que no genera un commit, y hace que la operación sea más compleja.

 

 

personalización de entornos

Sistemas Control de Versiones (SCV)

creaciónd de ramas y merges

 

 

Para la creación de dos copias o ramas de un mismo proyecto, que evolucionen de forma independiente siguiendo su propia línea de desarrollo.

 

 

 

Para ello se crean ramas de prueba, normalmente para desarrollo de nuevas funcionalidades o bien corrección de errores (código para evaluación). 

branching

personalización de entornos

Sistemas Control de Versiones (SCV)

creaciónd de ramas y merges

 

 

branching

  • Desde el proyecto: Git -> Create Branch
  • Podríamos cambiar de rama: Switch to Branch
    • ​Hago commit de algún cambio
  • Switch to rama máster
  • Merge revision

personalización de entornos

Sistemas Control de Versiones (SCV)

creaciónd de ramas y merges

 

 

Si las modificaciones de estas ramas de prueba se quieren preservar, es posible realizar un merge con la rama principal.

 

 

 

Mediante una revisión unificada se realiza una integración de dos fragmentos de cambios, bien sobre el mismo fichero o sobre un conjunto de ellos, en lo que se conoce como fusión.

FUSION

personalización de entornos

Sistemas Control de Versiones (SCV)

¿cUÁNDO SE PRODUCE UN MERGE...?

 

 

eugeniaperez.es

Cuando un desarrollador, actualiza su copia local con los cambios realizados sobre algunos de los códigos fuentes, más aquellos cambios que han sido añadidos por otros integrantes del equipo.

Análogamente, esta operación puede suceder en el repositorio cuando el desarrollador intenta un check-in de sus cambios. 

 

 

personalización de entornos

Sistemas Control de Versiones (SCV)

¿cUÁNDO SE PRODUCE UN MERGE...?

 

 

eugeniaperez.es

Podría también necesitar una actualización de una solución presentada a un problema en una rama a la otra rama, tras haber realizado una bifurcación de código.

Podría darse el caso de que tras haber creado ramas con una línea independiente de desarrollo por algún tiempo, se requiera una fusión de las mismas en un único trunk unificado. 

 

 

integración inversa

personalización de entornos

Sistemas Control de Versiones (SCV)

eugeniaperez.es

Desde Git -> Repository -> Repository browser

proyecto[master]

- Branches

- Tags

- Remotes

personalización de entornos

Sistemas Control de Versiones (SCV)

etiquetado o tagging

 

 

eugeniaperez.es

Mediante los tags es posible darle un nombrado o etiqueta numerada al proyecto, que permita su posterior identificación en una fecha determinada:

  • Identifican versiones publicadas del proyecto.
  • Dichas versiones son ramas congeladas, no evolucionan.

 

personalización de entornos

Sistemas Control de Versiones (SCV)

etiquetado o tagging

 

 

eugeniaperez.es

Creemos una nueva ramadev, que está pensada para hacer desarrollo, manteniendo la rama master para ir haciendo merges desde dev cuando consigamos tener funcionalidades completas y estables.

Desde la perspectiva Git de Netbeans:

Git -> Branch-> Create branch

 

personalización de entornos

Sistemas Control de Versiones (SCV)

creación de rama de desarrollo (dev)

 

 

eugeniaperez.es

Sobre el proyecto, Git -> Branches -> Switch to -> dev

La llamamos dev y automáticamente se cambia a la rama dev en la perspectiva Java.

 

personalización de entornos

Sistemas Control de Versiones (SCV)

CREACIÓN DE RAMA DE DESARROLLO (DEV)

 

 

eugeniaperez.es

Hagamos ahora un cambio en la rama dev. Git -> commit.

Si ahora nos interesa congelar el estado de la aplicación y sacar una primera versión:

creamos un tag ->

Git -> Branch/Tag -> Create tag

personalización de entornos

Sistemas Control de Versiones (SCV)

CREACIÓN DE RAMA DE DESARROLLO (DEV)

 

 

Por último, vamos a pasar los cambios realizados en la rama dev a la rama principal.

  • Switch to master, ya que el merge debe ser iniciado por la rama que queramos que reciba los cambios.
  • Git -> Branch/Tag ->Merge revision, y seleccionamos la rama dev.
  • Dejamos marcada la opción por defecto para que automáticamente haga un commit sobre la rama master con los cambios recibidos.

Git con Netbeans

By eugenia_perez

Git con Netbeans

  • 1,410