¿Quién no ha tenido que recurrir a una copia perdida, en alguna carpeta del ordenador, con nuestros datos, para rescatar información tal y como estaba hace unos meses? No es que sea algo que ocurra todos los días, pero de vez en cuando se da y entonces suele causarnos algún dolor de cabeza. Y más aún si solo tenemos que recuperar algunos registros de una capa que borramos o modificamos hace semanas por accidente y queremos recuperar solo esos.
En los últimos años, en otros contextos que no están relacionados con la gestión de cartografía, ya va siendo normal encontrarnos con sistemas de control de versiones (VCS, del inglés Version Control System) para gestionar la información. Sin embargo, en los entornos SIG, no es tan habitual, sobre todo por la escasa o nula oferta que podemos encontrar en entornos no privativos. Pues bien, a partir de gvSIG Desktop 2.6 podremos disponer de un sistema de control de versiones, VCSGis, en un software libre y que podremos utilizar directamente sin instalar nada más que el propio gvSIG Desktop.
Entonces, si tengo instalado (o una portable) gvSIG Desktop 2.6…
¿Cómo puedo empezar a usar el control de versiones sobre mis tablas y capas ?
- Lo primero será crear un repositorio para el control de versiones. Algo así como un espacio en el que se almacenarán todos mis datos… y los cambios que voy haciendo sobre ellos. En jerga gvSIG le llamaremos un repositorio VCSGis
- Lo segundo, crear una copia de trabajo vinculada a dicho repositorio. Será sobre esa copia de trabajo sobre la que trabajaremos habitualmente.
- Tercero… cargar nuestras tablas y capas en la copia de trabajo y sincronizarla con el repositorio VCSGis.
A partir de ahí, simplemente seguiremos trabajando de forma normal con gvSIG Desktop e iremos sincronizando con el repositorio de vez en cuando, normalmente al inicio o fin de nuestra sesión de trabajo.
Esto, dicho así, a algunos podrá parecerles algo complicado, pero nada mas lejos de la realidad. Voy a ir contándolo con un poquito mas de detalle en este post, solo un poquito, que no quiero alargarme demasiado.
Creación de un repositorio personal
El repositorio VCSGis no es más que una base de datos con una serie de tablas especiales, donde VCSGis almacena nuestra información. Para nuestro uso personal, normalmente será suficiente con usar el gestor de base de datos H2 que viene incluido con gvSIG Desktop. Para ello, simplemente accederemos al menú:
Herramientas -> VCSGis -> Administración -> Inicializar un repositorio.
Nos solicitará que seleccionemos una conexión a una base de datos e inicializará el repositorio VCSGis en ella.
Creación de una copia de trabajo
Lo segundo que teníamos que hacer… crear una copia de trabajo vinculada a ese repositorio. La copia de trabajo no es más que otra base de datos, normalmente en formato H2Spatial, donde estarán nuestras tablas, con las que trabajaremos, y una serie de tablas para poder mantener la información sincronizada con el repositorio.
Crear una copia de trabajo es también una tarea muy sencilla. Accederemos a la opción de menú:
Herramientas -> VCSGis -> Inicializar copia de trabajo.
Nos pedirá que seleccionemos la conexión a la base de datos del repositorio, y un nombre de archivo en el que crear nuestra copia local.
Estos dos pasos, crear el repositorio y la copia local, normalmente los haremos una sola vez. Una vez ya creados y configurados, podemos trabajar con ellos, sin necesidad de volver a crear otros.
Añadir capas y guardarlas en el repositorio
Ya tenemos nuestro repositorio y nuestra copia de trabajo. Solo hemos tardado unos pocos minutos. Ahora cargaremos nuestras capas en la copia local y las sincronizaremos con el repositorio.
Cargaremos en una Vista nuestra capa… por ejemplo, yo tengo por aquí una de provincias de España (esp_provincias). No voy a contar como cargar una capa en una Vista de gvSIG Desktop, seguro que ya sabéis. Con la capa cargada en la Vista, seleccionaremos la opción de menú:
Herramientas -> VCSGis -> Añadir a la copia de trabajo.
En el cuadro de diálogo que se muestra indicaremos nuestra copia de trabajo y, en la pestaña Capas, seleccionaremos la capa que queremos cargar de entre las existentes en la Vista de gvSIG Desktop. Y, por último, pulsaremos el botón de “Añadir a la copia de trabajo”. Una vez terminado el proceso, cerraremos el diálogo.
Como resultado tendremos cargada en la Vista nuestra capa… ¡¡ dos veces !!
Es normal. Estamos viendo nuestra capa original y una copia que se ha creado en… nuestra copia de trabajo. Eliminaremos la capa original de la Vista y, a partir de ese momento, trabajaremos con la que está en nuestra copia de trabajo.
Pero aún no hemos terminado del todo este proceso. Todavía tenemos que sincronizar nuestra copia de trabajo con el repositorio. Algo que sigue siendo muy fácil. Seleccionaremos la opción de menú:
Herramientas -> VCSGis -> Mostrar cambios
Seleccionaremos nuestra copia de trabajo y veremos, en la pestaña Copia de trabajo, que aparece la capa que acabamos de añadir. Solo tenemos que marcarla (haciendo clic en el check de esta), y pulsar el botón con la flechita azul que dice “commit”. Y al terminar ya podemos cerrar la ventana.
Guardar mi capa de Provincias en el repositorio ha llevado menos de un minuto. Y hacer todos los pasos, desde el comienzo del artículo, me ha llevado menos de 5. Si la capa a añadir a nuestro repositorio personal es muchísimo mas grande puede tardar algo mas, pero solo será durante esa carga inicial donde notaremos la pesadez de la capa.
Realizar modificaciones en nuestras capas
¿Y ahora, qué tendría que hacer para trabajar con mi capa?
Si hemos cerrado gvSIG Desktop, cuando lo volvamos a abrir tenemos que cargar de nuevo la capa. También fácil. Sacaremos el dialogo de Añadir capa y seleccionaremos la pestaña VCSGis. Seleccionaremos nuestra copia local, y nos mostrará las capas que tenemos disponibles, podremos seleccionar la nuestra y cargarla en la Vista.
Una vez cargada… trabajamos con ella como solemos hacer, si precisamos modificarla entramos en edición, la modificamos y terminamos edición. Tantas veces como necesitemos. Durante un rato nos olvidamos que se trata de una capa que esta en un sistema de control de versiones y trabajamos con ella como con cualquier capa de gvSIG en base de datos. Cuando hayamos terminado de trabajar con ella… seleccionamos la herramienta de Mostrar cambios. Indicamos nuestra copia de trabajo, marcamos nuestra capa en la lista de capas de esa copia de trabajo y pulsamos el botón Commit. Como hicimos cuando añadimos la capa al repositorio. Y nuestros cambios se integrarán en él.
El proceso de modificación de nuestra capa, y sincronización con el repositorio, lo repetiremos tantas veces como necesitemos, y de esa forma dispondremos de un histórico de cómo se encontraba la capa en cada momento.
Recuperar una versión anterior de mis datos
Y un día, de repente, nos pasa. ¡Oh! ¡Nos acabamos de dar cuenta que ya debe hacer un par de semanas que borramos un registro!. Debí borrar por error la provincia de Almería, y no me había dado cuenta hasta hoy. Y lo peor es que he estado trabajando sobre otras zonas de la capa y no quiero perder los cambios. Es ahí donde te acuerdas que llevas trabajando un tiempo con un sistema de control de versiones. Y que puedes utilizarlo para recuperar los datos de hace dos semanas y mezclarlos con tus cambios.
En general siempre podrás recuperar una versión de tus capas desde la ventana de “Obtener copia local (checkout)” que encontraras en la opción de menú:
Herramientas -> VCSGis -> Obtener copia local (checkout)
Pero antes de seguir… asegurate que no tienes cambios por sincronizar con el repositorio, que todos tus cambios sobre la capa que quieres trabajar están guardados, subidos, en el repositorio. Si ya no tienes ningún cambio en tu copia local, volvemos a la ventana de “Obtener copia local (checkout)”.
Seleccionaremos nuestra copia de trabajo, nuestra capa, marcaremos el check de “Sobrescribir tabla”, y pulsaremos en el botón de revisión para seleccionar que revisión queremos recuperar, en mi caso la revisión 1, que era la última en la que aún estaba la provincia de Almería. Finalmente, pulsaremos en el botón de “Obtener copia local (checkout)” y cuando termine, cerraremos este diálogo.
Y ahora… nuestra capa en la copia local está en el estado en que estaba la revisión que he seleccionado… y…
¿Dónde están los cambios que hice desde entonces ?
¡¡¿Los he perdido?!!
No. No hay que asustarse. Están en el repositorio. Solo tenemos que ir a la ventana de cambios, seleccionar nuestra copia de trabajo e ir a la pestaña de Repositorio. Seleccionaremos nuestra capa y pulsaremos en el botón de “Descargar cambios remotos de la tabla seleccionada” y en la tabla de la derecha tendremos todos los cambios que hemos realizado desde la revisión que tenemos ahora en la copia local. Podremos seleccionar cuales queremos descargar y cuales no, y luego subiremos el estado en que dejemos nuestra capa al repositorio.
Una pequeña anotación. Si en la lista de cambios seleccionamos un registro, y tenemos en la Vista activa la capa en cuestión, podemos utilizar los botones Centrar y Zoom, para ver cómo estaba y mostrará la información gráfica del registro.
Lo he contado todo muy rápido, dar una pincelada rápida de lo que sería trabajar con el sistema de control de versiones de gvSIG Desktop VCSGis. Se pueden hacer muchas más cosas de lo que he contado, pero este articulo ya ha salido muy largo. Lo dejamos para futuros post.
Importante de cara a acercarse a VCSGis… dos conceptos a recordar:
- Repositorio VCSGis. Donde se guardan todos nuestros datos.
- Copia de trabajo (ligada a un repositorio). Donde tenemos una copia de una versión de nuestros datos con la que trabajamos.
Y otra cosa importante… si tenemos que hacer copia de nuestros datos lo haremos de la base de datos del repositorio, normalmente dos ficheros (.mv.db y .trace.db) y lo haremos cuando no este gvSIG Desktop arrancado
Espero que os haya servido, o como mínimo que haya sido interesante.