![Page 1: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/1.jpg)
Herramienta de Control de Versiones :
Subversion
Elisa Herrmann Ingeniería del Software de Gestión
![Page 2: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/2.jpg)
¿Qué es Control de Versiones?
Gestión del desarrollo de cada elemento de un proyecto a lo largo del tiempo
Proporciona:
◦ Mecanismo de almacenaje de cada elemento que deba gestionarse (archivos de código, imágenes, documentación...)
◦ Posibilidad de añadir, modificar, mover, borrar...
◦ Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior
◦ Otros: generación de informes de cambios, informes de estado, marcado con nombre identificativo, etc.
Se utiliza un repositorio, donde se almacena la información de todo el desarrollo
![Page 3: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/3.jpg)
¿Qué es Control de Versiones?
Útil para trabajar individualmente o en
grupo
Servidor local o remoto
Permite desarrollos colaborativos,
incluso concurrentemente!
Todo equipo profesional de desarrollo
de software lo utiliza
![Page 4: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/4.jpg)
¿Qué es Subversion?
Un software para control de versiones
Fácil de usar
Diseño simple, potente, seguro
Software Libre y gratuito
◦ Licencia APACHE/BSD
Tanto clientes y servidor, funcionan en
muchos S.O.
◦ Incluídos GNU/Linux, Windows, Mac OS, etc.
![Page 5: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/5.jpg)
Características: Envíos atómicos
◦ Todos los cambios, o ninguno.
◦ Aporta seguridad en la integridad de los datos
Versionado de directorios
◦ Se lleva un control de cambios a través del tiempo del directorio.
◦ Sistema de archivos “virtual ” que sigue los cambios sobre árboles de directorios completos a través del tiempo
Verdadero historial de versiones
◦ Se puede añadir, borrar, copiar, y renombrar archivos y directorios.
◦ Cada fichero nuevo añadido comienza con un historial nuevo, limpio y completamente propio.
![Page 6: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/6.jpg)
Características
Elección de las capas de red
◦ Posee abstracción del acceso al repositorio
◦ Como módulo de Apache:
Estabilidad e interoperabilidad
Autenticación, autorización, compresión de la conexión,
etc.
Puertos estándar (administradores de red agradecidos)
◦ Como servidor independiente (svnserve):
Muy ligero, habla un protocolo propio.
Puede ser encaminado fácilmente a través de un túnel
SSH.
![Page 7: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/7.jpg)
Características Manipulación consistente de datos
◦ Encuentra diferencias usando un algoritmo en modo binario
◦ Funciona idénticamente con texto o archivos binarios.
◦ Todos los tipos de archivos se guardan comprimidos en el repositorio.
Ramificación y etiquetado eficientes
◦ El costo de crear una nuevas ramas (branch) o etiquetas (tag) no es proporcional al tamaño del proyecto
Totalmente reutilizable
◦ SVN está compuesto por bibliotecas compartidas en C con APIs claras.
◦ Hay implementaciones en distintos lenguajes (java, python, etc)
![Page 8: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/8.jpg)
Breve historia
Comenzado a principios de 2000
(CollabNet)
Objetivo: Mejorar CVS
Versión 1.0 liberada en 2004
◦ Contemplaba todas de las funcionalidades
de CVS y muchas mejoras
La versión actual es la 1.7.0
![Page 9: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/9.jpg)
El problema de compartir archivos
¿Cómo permitirá el
sistema a los usuarios
compartir información,
pero al mismo tiempo
impidiendo que se
sobreescriban de forma
accidental?
![Page 10: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/10.jpg)
El problema de compartir archivos
La solución bloqueo-modificación-desbloqueo ◦ El repositorio sólo
permite a una persona modificar un archivo al mismo tiempo.
◦ Si 'Harry' ha bloqueado el archivo, entonces 'Sally' no puede hacerle cambios.
◦ Sólo puede leer el archivo y esperar a que lo desbloquee
![Page 11: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/11.jpg)
El problema de compartir archivos
Bloquear puede causar problemas de gestión
◦ Demoras innecesarias y pérdida de tiempo.
Bloquear puede causar una serialización innecesaria
◦ Si los cambios no se solapan los usuarios podrían editar el archivo simultáneamente
Bloquear puede causar una falsa sensación de seguridad
◦ Cuando hay una dependencia entre varios archivos, no se soluciona nada bloqueando sólo uno, ya que una dependencia puede cambiar y el proyecto pierde integridad.
![Page 12: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/12.jpg)
El problema de compartir archivos
La solución copiar-
modificar-mezclar
◦ Se crea una réplica local
del repositorio
◦ Los usuarios pueden
trabajar en paralelo
◦ Finalmente, todas las
copias privadas se
combinan en una nueva
versión final.
![Page 13: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/13.jpg)
El problema de compartir archivos
¿Pero qué ocurre si los cambios de los usuarios se solapan?
◦ Se produce un conflicto
◦ Se puede resolver de tres formas:
Editando manualmente las líneas conflictivas
Eligiendo una de las versiones
O deshaciendo todos los cambios locales
![Page 14: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/14.jpg)
El problema de compartir archivos
Conclusiones
◦ El tiempo en resolver los conflictos es mucho menor
que el tiempo perdido por un sistema de bloqueos.
◦ Los usuarios pueden trabajar en paralelo, sin tener
que esperarse el uno al otro.
◦ La mayoría de los cambios concurrentes no se
solapan en absoluto; los conflictos son poco
frecuentes
◦ Un factor crítico para la productividad: la
comunicación entre los usuarios. ¡Hay que conversar
con los compañeros!
![Page 15: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/15.jpg)
Ciclo básico de trabajo
0) Crear copia local (checkout) ◦ Se puede especificar una revisión o fecha particular
1) Actualizar la copia de trabajo (update) ◦ Permite recuperar las últimas modificaciones del
repositorio
2) Hacer cambios ◦ Add, delete, copy, move
3) Examinar cambios ◦ status, diff, revert
4) Fusionar cambios ◦ merge, resolved
5) Enviar cambios (commit) ◦ Requiere un mensaje 'log' que detalle las modificaciones
hechas
![Page 16: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/16.jpg)
Vocabulario básico 1/2 Copia de trabajo ◦ Es la copia local de los archivos de un repositorio,
en un momento del tiempo o revisión específicos.
Check-out (co) ◦ Crea una copia de trabajo local desde el
repositorio. Se puede especificar una revisión específica.
Commit (ci) ◦ Cuando una copia de los cambios hechos a una
copia local es integrada sobre repositorio.
Import ◦ Una importación es la acción de copiar un árbol
de directorios a uno local (que no es en ese momento una copia de trabajo) en el repositorio por primera vez.
![Page 17: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/17.jpg)
Vocabulario básico 2/2
Actualizar (update) ◦ Una actualización integra los cambios que han
sido hechos en el repositorio (por ejemplo por otras personas) en la copia de trabajo local.
Conflicto
◦ Ocurre cuando se realizan dos cambios al mismo documento, y el sistema es incapaz de reconciliar los mismos.
Resolver
◦ La intervención del usuario para atender un conflicto entre diferentes cambios al mismo documento.
![Page 18: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/18.jpg)
Recursos
Clientes
◦ TortoiseSVN (MS Windows)
◦ Subclipse (plugin para Eclipse, multiplataforma)
◦ RapidSVN (multiplataforma)
◦ muchos más...
Navegadores de repositorios
◦ ViewVC
◦ WebSVN
![Page 19: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/19.jpg)
Organización de Repositorio
Por directorio
Directorios
◦ Trunk: línea principal de desarrollo.
◦ Tags: colección de snapshots del trunk (o una
branch) en un momento definido de tiempo
◦ Branches: variaciones activas del proyecto
comparado con trunk.
![Page 20: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/20.jpg)
Repository Server The client machine
“Check out” una copia de trabajo
Check Out
![Page 21: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/21.jpg)
Check out Existen muchas formas de realizarlo.: Una
1. Cambiar a "SVN Repository Exploring
Mode".
2. Botón derecho
New => Repository
Location
3. URL y (opcional)
información de
authentication.
![Page 22: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/22.jpg)
Check out
Navegar el repositorio.
Seleccionar la parte con la que se quiere
trabajar (usually "trunk")
Botón derecho"Check Out as...“
![Page 23: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/23.jpg)
Edición de Ficheros
1. Modificar.
2. Probar.
◦ No subir código con errores.
3. Commit
Comparar
![Page 24: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/24.jpg)
Modificaciones Botón derecho=> Team => Synchronize with Repository
Perspectiva"Team Synchronize".
"Compare Editor" para comparar.
![Page 25: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/25.jpg)
Modificaciones Se puede usar "Compare Editor" para
descargar cambios.
o botón derecho => "Update" fichero o
proyecto.
![Page 26: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/26.jpg)
Resolver Conflictos
“Conflicto" significa que se han hecho cambios al
fichero local y la versión del repositorio ha
cambiado también.
![Page 27: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/27.jpg)
Resolviendo Conflictos
Alternativas:
(1) Mezclar.
(2) Aceptar cambios remotos, descartar cambios locales.
(3) Sobrescribir remotos
Después de resolver los conflictos hay que marcarlos como “resueltos”.
Subversion borra las copias extras.
![Page 28: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/28.jpg)
"Compare Editor" de la perspectiva
Synchronize.
Accept or reject changes one-by-one or
all at once.
Resolviendo Conflictos
![Page 29: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/29.jpg)
Commit
Eclipse:
Boton derecho en el fichero o carpta=>
Commit
...
![Page 30: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/30.jpg)
Mover, Renombrar, Borrar
Use:
svn copy oldfile newfile
svn move oldfile newfile
svn rename oldname newname
svn delete filename
No usar Windows (u otro SO) para mover o renombrar
La IDE marcará los ficheros para renombrer o
borrar en SVN.
![Page 31: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/31.jpg)
Herramientas
![Page 32: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/32.jpg)
Visor de Log y Gráfico de Revisión
Eclipse and Netbeans have similar tools.
![Page 33: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/33.jpg)
ViewVC - SVN en el navegador
http://se.cpe.ku.ac.th/viewvc/d
emo
![Page 34: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/34.jpg)
"Importando" un Proyecto
![Page 35: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/35.jpg)
Plan Antes de importar
1. Organizar la copia local.
src/ Source code
org/
myproject/
domain/
ui/
service/
test/ Test code
org/
myproject/
dist/ Distributables
lib/ Libraries needed
![Page 36: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/36.jpg)
Plan Antes de importar
2. Decidir que no importar.
Examples:
◦ Ficheros compilados (*.class, *.obj, *.exe)
◦ Ficheros grandes, imágenes, videos, etc.
◦ Librerías de terceros que se pueden descargar
de internet .
e.g. log4j.jar, mysql-connector-5.1.jar, ...
◦ Si se necesitan librerías de 3ros, ponerlos en
un proyecto separado
![Page 37: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/37.jpg)
Agregar “ignorados" a un proyecto
Eclipse:
1. Boton derecho en el fichero o carpeta
2. Team => Add to svn:ignore
3. Se indica ignorado
![Page 38: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/38.jpg)
Importar Abrir proyecto.
Team -> Share Project...
Elegir"SVN" …"Next“
"Create a new
Repository
location" o existente.
Esto crea una
ubicación en eclipse
![Page 39: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/39.jpg)
Servidor y Protocolos
![Page 40: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/40.jpg)
Arquitectura
Berkley DB
FSFS
Subversion Repository
Client Interface Repository Interface
GUI clients
Cmd line clients
Client Library
Working Copy Management
Library
Access Protocol
DAV
SVN
Local
Apache
mod_dav
mod_dav_svn
svnserve
"file" protocol
SSH
sshd
Intranetwork
![Page 41: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/41.jpg)
URL y Protocolos
14/11/2011 Ing.Software de Gestión (LADE-ITIG) 63
http://myhost.com:port/path/to/repository
Protocol:
svn
svn+ssh
http
https
file
Host name or
IP address
127.0.0.1
localhost
host:8443
optional port
number
Repository
relative
path
![Page 42: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/42.jpg)
Más recursos
Sitio oficial de Subversion
◦ http://subversion.apache.org/
Libro libre 'Control de versiones con Subversion'
◦ http://svnbook.red-bean.com/
Hosting SVN gratuito
◦ http://code.google.com/hosting
◦ http://sourceforge.net
Otros
◦ http://svn.collab.net/subclipse/help/index.jsp?topic=/
org.tigris.subversion.subclipse.doc/html/reference/t
eam-synchronize.html
![Page 43: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/43.jpg)
Ejemplos
http://dev.eclipse.org/viewcvs/viewvc.cgi?vi
ew=roots
14/11/2011 Ing.Software de Gestión (LADE-ITIG) 66
![Page 44: Ingeniería del Software de Gestión - Kybele...Historial de las acciones realizadas con cada elemento pudiendo volver a un estado anterior ... Hay implementaciones en distintos lenguajes](https://reader034.vdocumento.com/reader034/viewer/2022050306/5f6ee1871257027a214b3e4e/html5/thumbnails/44.jpg)
Otros
Git
Bazaar (software)
Mercurial
Bonsai CVS
Plastic SCM
14/11/2011 Ing.Software de Gestión (LADE-ITIG) 67