80 likes | 210 Views
Trabajo Visual SVN Server. Análisis. Ramas ( Branch ). Una rama se crea duplicando un directorio dentro del repositorio. Podemos duplicarlo en la copia local ( workcopy ) de trabajo con: - svn copy < dir.origen > < dir.destino > - svn commit
E N D
Trabajo Visual SVN Server Análisis
Ramas (Branch) • Una rama se crea duplicando un directorio dentro del repositorio. • Podemos duplicarlo en la copia local (workcopy) de trabajo con: - svncopy <dir.origen> <dir.destino> - svncommit • O bien podemos duplicarlo directamente, sobre el repositorio, en un solo paso: - svncopy <url.origen> <url.destino>
Las ramas permiten generar modificaciones (que se pueden alargar mucho en el tiempo) sin que afecten al tronco principal, y cuando estas estén testadas, traspasarlas al tronco. Las actividades habituales de una rama son las siguientes: • Editar archivos de una rama (modificando, creando, borrando, aunque esta última debe usarse pensando en los efectos que acabará teniendo en el futuro en el tronco principal). • Traspasar los cambios del tronco hacia la rama (necesario hacerlo de vez en cuando, para evitar que la rama se acabe alejando demasiado del tronco, y luego sea muy difícil enviarle los cambios). • Traspasar los cambios de la rama hacia el tronco.
Utilidad de una Rama • Las ramas permiten generar modificaciones sin que afecten al tronco principal, y cuando estas estén testadas, traspasarlas al tronco. Las actividades habituales de una rama son las siguientes: • Editar archivos de una rama (modificando, creando, borrando, aunque esta última debe usarse pensando en los efectos que acabará teniendo en el futuro en el tronco principal). • Traspasar los cambios del tronco hacia la rama (necesario hacerlo de vez en cuando, para evitar que la rama se acabe alejando demasiado del tronco, y luego sea muy difícil enviarle los cambios). • Traspasar los cambios de la rama hacia el tronco.
Traspasar del Tronco a la Rama • Como el tronco (trunk) va sufriendo modificaciones, necesitamos que estas se vayan traspasando hacia la rama, para evitar que la rama quede excesivamente separada del tronco (y su traspaso posterior hacia el tronco se vuelva caótico, o inviable). • Para ello usamos el comando merge: - cd <directorio de la rama> - svnmerge -r <revision-inicial>:<revision- final> <url-del-tronco> - svncommit
Traspasar de la Rama al Tronco • Cuando la rama ya se considera acabada, queremos traspasar los cambios de la rama hacia el tronco. • Esto lo conseguimos también con el "merge": - cd <directorio del tronco> - svnmerge -r <revision-creacion- rama>:<HEAD> <url-de-la-rama> - <probamos y revisamos que todo funcione, pulimos conflictos, etc ...> - svncommit
Etiquetar (Tags) • Una etiqueta (tag) es lo mismo que una rama, solo que no está destinada a ser modificada. Al subversion le es imposible dintiguir entre ramas y etiquetas (de hecho ya hemos comentado que no les es posible saber lo que es una rama, ya que es un concepto de los usuarios, no del control de versiones). Por ello, lo único que diferencia una rama de una etiqueta, es que esta última no será modificada (siempre y cuando a ningún usuario se le ocurra modificarla, ya que, de hecho, no hay una manera concreta de impedir que alguien modifique una etiqueta). • La utilidad de las etiquetas es obvia: nos permite crear copias instantáneas de una determinada revisión que queremos que sea duradera, mientras los programadores continúan trabajando en nuevas revisiones. Por ello las etiquetas son, habitualmente, las revisiones estables de un proyecto. • Como las etiquetas son copias ligeras, podemos crear tantas como queramos, sin que ello afecte significativamente al volumen de la base de datos del repositorio.