Uso del Sistema de Control de Versiones

El sistema de control de versiones mantiene, en un repositorio centralizado, una historia permanente de las revisiones de cada archivo de la base de datos de una producción.

El repositorio central debe estar ubicado en un recurso compartido (tanto en una computadora de la red local, como en una ubicación remota accesible a través de Internet), mientras que una copia de trabajo local de los archivos del mismo, debe estar ubicada en la computadora que se está utilizando, y representa al estado o versión del proyecto en el momento en que la copia local fue realizada.

Cuando se necesita trabajar en un archivo, es posible obtenerlo desde el repositorio central para copiarlo localmente y poder editarlo; al finalizar el trabajo, el archivo deberá ser enviado nuevamente al repositorio central.

El archivo que se envía es almacenado como la última versión del mismo, preservando sus versiones anteriores como historial; cualquier usuario con acceso a ese mismo repositorio central puede obtener la última versión del archivo cuando sea necesario. En caso de ser necesario obtener una versión anterior del archivo, siempre será posible hacerlo accediendo al historial del mismo en el repositorio central.

OpenToonz soporta el sistema de control de versiones Subversión, que es uno de los sistemas más populares y es utilizado en diversos proyectos de código abierto de gran escala.

Nota

El repositorio central definido en el sistema de control de versiones se comportará exactamente igual que cualquier otra carpeta principal de proyectos de OpenToonz, por lo tanto la administración de proyectos bajo control de versiones se realiza de una forma idéntica a la de cualquier otro proyecto, con la diferencia de estar haciendo referencia a un repositorio central, en vez de a una carpeta principal de proyectos normal (ver Administración de proyectos ).

Instalación del Sistema de Control de Versiones

El sistema de control de versiones funciona como una herramienta cliente/servidor: el servidor almacena todos los archivos en un repositorio central, utilizando un cliente para obtener una copia local de dichos archivos, y para posteriormente enviar los archivos modificados, de vuelta al repositorio central.

Instalación del Sistema de Control de Versiones

Es posible configurar una computadora en la red local para que actúe como servidor de control de versiones, instalando allí Subversión 1.6 o posterior, o es posible también utilizar un servicio en línea (p.ej: Assembla).

Para descargarlo se debe ir a la página de inicio de Subversion (en inglés) .

Contactar al administrador de sistemas para configurar el sistema de control de versiones.

Instalación del Cliente de control de versiones en Windows

En Windows la configuración de un cliente de control de versiones requiere la descarga e instalación del cliente de Subversion 1.6 o posterior.

Para su descarga se debe ir a la página de descargas de Subversion (en inglés) . Ahí se deben buscar los paquetes binarios disponibles y descargar un cliente de control de versiones para Windows. Se sugiere el uso del cliente CollabNet Subversion Command-Line Client.

Nota

Si se estuviera utilizando una versión más antigua de Subversion, es posible que algunas de las funciones de control de versiones no funcionen.

Instalación del Cliente de control de versiones en macOS

En macOS la configuración de un cliente de control de versiones dependerá de la versión del sistema operativo.

Si el sistema usado es Snow Leopard (versión 10.6) o posterior, la configuración no requerirá de una instalación, ya que el cliente de control de versiones viene incluido en el sistema operativo.

Si el sistema operativo usado fuera anterior a Snow Leopard, la configuración requerirá de la instalación del cliente de Subversion 1.6 o posterior.

Se deberá ir a la página de descargas de Subversion (en inglés) para realizar la descarga. Ahí se deberán buscar los paquetes binarios disponibles y descargar un cliente de control de versiones para macOS.

Luego de la instalación es muy importante comprobar dónde se encuentra instalado Subversion, ya que esa información será necesaria para configurar el control de versiones en OpenToonz: esta información es mostrada en la última página del proceso de instalación, de forma predefinida suele ser /opt/subversion/bin .

Nota

Si se estuviera usando una versión de Subversion anterior a la 1.6, es posible que algunas de las funciones de control de versiones no funcionen.

Configuración del control de versiones en OpenToonz

Una vez que el servidor de control de versiones esté configurado y el cliente de control de versiones esté instalado, será posible configurar OpenToonz para que haga uso del control de versiones.

En OpenToonz la información de control de veriones es almacenada en el archivo versioncontrol.xml ubicado en la carpeta OpenToonz stuff\config . De forma predefinida el archivo contiene lo siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<Repositories>
    <!-- REMOVE ENTIRELY THIS LINE TO ENABLE SVN
<repository>
    <name>PutYourRepositoryName</name>
    <localPath>putYourWorkingCopyPath</localPath>
    <repoPath>putYourRepositoryPath</repoPath>
</repository>
REMOVE ENTIRELY THIS LINE TO ENABLE SVN -->
    <svnPath></svnPath>
</Repositories>

Mediante la edición del archivo usando un editor de texto es posible establecer la información para el repositorio central y la ubicación de la copia de trabajo.

Conjuntamente con el archivo de configuración, deben definirse usuarios de control de versiones, editando el archivo permissions.xml ubicado en la carpeta OpenToonz stuff\config .

Nota

Los archivos versioncontrol.xml y permissions.xml deben estar bien formados, por lo tanto no podrán contener una etiqueta de apertura sin su correspondiente de cierre, de otro modo OpenToonz no podrá ejecutarse. Si se decide editar estos archivos, es una buena práctica realizar previamente una copia de respaldo de los mismos, en caso de necesitar volver a la versión original de los archivos.

Truco

Para configurar el control de versiones en OpenToonz:

  1. Abrir el archivo versioncontrol.xml ubicado en la carpeta OpenToonz stuff\config con un editor de texto.
  2. Borrar la línea

<!-- REMOVE ENTIRELY THIS LINE TO ENABLE SVN

y la línea

REMOVE ENTIRELY THIS LINE TO ENABLE SVN -->

  1. En la línea

<name>PutYourRepositoryName</name>

ingresar entre las etiquetas <name> el nombre con que se desea que el repositorio aparezca en el Explorador de archivos de OpenToonz.

  1. En la línea

<localPath>putYourWorkingCopyPath</localPath>

ingresar entre las etiquetas <localPath> la ruta de la computadora local donde se desea ubicar la copia de trabajo de los archivos (p.ej: C:\micopiadetrabajo\ para Windows o /micopiadetrabajo para macOS).

  1. En la línea

<repoPath>putYourRepositoryPath</repoPath>

ingresar entre las etiquetas <repoPath> la URL del repositorio central, de acuerdo a cómo haya sido definido en el servidor de control de versiones (p.ej: http://10.0.0.1/mirepositorioSVN/ para un repositorio ubicado en la red local; file:///C:/mirepositorioSVN para uno ubicado en la computadora local Windows, file:///mirepositorioSVN para uno ubicado en la computadora local Macintosh; o https://subversion.assembla.com/svn/mirepositorioSVN para uno alojado en Internet).

Sólo para macOS, si el sistema operativo fuera anterior a Snow Leopard y se hubiera instalado el cliente de Subversion 1.6 o posterior, entonces en la línea

<svnPath></svnPath>

ingresar entre las etiquetas <svnPath> la ruta a la carpeta donde se instaló Subversion (esta información se muestra en la última página del proceso de instalación y de forma predefinida es /opt/subversion/bin ).

  1. Guardar el archivo versioncontrol.xml .

Truco

Para definir los usuarios del sistema de control de versiones:

  1. Abrir el archivo permissions.xml ubicado en la carpeta OpenToonz stuff\config con un editor de texto.

  2. En la sección user definir un usuario y asignarle el nombre de usuario y contraseña que haya sido configurado de antemano en el servidor de control de versiones. Por ejemplo, para asignarle al usuario JohnDoe el usuario del servidor johnd, cuya contraseña es johndpassword, ingresar lo siguiente:

    <user name="JohnDoe">
        <roles>toonzer</roles>
        <svn name="johnd" password="johndpassword" />
    </user>
    
  3. Guardar el archivo permissions.xml .

Truco

Para definir varios repositorios de control de versiones:

  1. Abrir el archivo versioncontrol.xml ubicado en la carpeta OpenToonz stuff\config con un editor de texto.

  2. Agregar luego de las líneas que definen un repositorio las siguientes líneas:

    <repository>
        <name>PutYourRepositoryName</name>
        <localPath>putYourWorkingCopyPath</localPath>
        <repoPath>putYourRepositoryPath</repoPath>
    </repository>
    
y ingresar la información correspondiente.
  1. Guardar el archivo versioncontrol.xml .

Truco

Para definir usuarios para distintos repositorios:

  1. Abrir el archivo permissions.xml ubicado en la carpeta OpenToonz stuff\config con un editor de texto.

  2. En la sección user asignar a un usuario el nombre de usuario y contraseña tal como haya sido configurado en el servidor del segundo repositorio. Por ejemplo, para asignar al mismo usuario JohnDoe el usuario johnd2 cuya contraseña es johndpassword2 definida para el segundo repositorio, ingresar una nueva línea svn name para que la sección user name en el archivo permissions.xml luzca de la siguiente manera:

    <user name="JohnDoe">
        <roles>toonzer</roles>
        <svn name="johnd" password="johndpassword" />
        <svn name="johnd2" password="johndpassword2" />
    </user>
    
  3. Guardar el archivo permissions.xml .

Inicialización del control de versiones en OpenToonz

Antes de poder comenzar a usar el sistema de control de versiones, el mismo tiene que ser inicializado activando una opción en el diálogo de Preferencias y reiniciando OpenToonz.

En este punto el repositorio se mostrará en el Explorador de archivos de OpenToonz y se podrá comenzar a usar.

Truco

Para inicializar el sistema de control de versiones:

  1. En OpenToonz abrir el diálogo Preferencias… → Control de versiones y activar la opción Habilitar control de versiones.

Nota

Si el sistema de control de versiones no estuviera correctamente instalado o sus archivos de configuración correctamente definidos, al intentar activar la opción aparecerá un mensaje de advertencia.

  1. Salir y reiniciar OpenToonz.
  2. En el Explorador de archivos de OpenToonz buscar el repositorio al final del árbol de carpetas, con el mismo nombre asignado en el archivo de configuración; hacer clic derecho y elegir Obtener en el menú para establecer la conexión entre el repositorio central y la copia de trabajo local.

Uso del Sistema de Control de Versiones

El repositorio central y la copia de trabajo local son mostradas como una única carpeta en el Explorador de archivos de OpenToonz, en la parte inferior del árbol de carpetas.

_images/browser_tree_svn.png

Un repositorio remoto definido (svn_test) alojando el proyecto activo (mySVNproject).

Cuando se selecciona una carpeta en el árbol de carpetas ocurre una operación automática de actualización, para comprobar el estado de la misma y de su contenido. Como esta operación puede tomar algún tiempo, dependiendo de la velocidad de conexión con la red local o Internet, esta operación automática de actualización puede ser deshabilitada.

Nota

Si hubiera varios repositorios definidos, cada uno de ellos será mostrado con el nombre previamente asignado.

Truco

Para deshabilitar la actualización automática del contenido de carpetas:

  1. Elegir Archivo → Preferencias… → Control de versiones.
  2. Desactivar la opción Actualizar automáticamente contenido de carpetas.

Truco

Para actualizar manualmente el contenido de carpetas:

Hacer clic derecho sobre el ícono de la carpeta en el árbol de carpetas y elegir Actualizar en el menú.

Obtención y envío de carpetas y archivos

Las operaciones básicas al usar el control de versiones son la obtención de archivos desde el repositorio central hacia la copia de trabajo local; y luego el envío de los archivos modificados de vuelta desde la copia de trabajo local hacia el repositorio central.

put

En caso de enviar carpetas, en el diálogo emergente es posible marcar cuáles archivos y carpetas contenidos en la carpeta seleccionada deberán ser enviados al repositorio central. Cada vez que se envían archivos o carpetas, es posible ingresar un comentario para informar a otros usuarios acerca de las modificaciones realizadas.

put_scene

En caso de estar obteniendo o enviando archivos de escena (en formato TNZ), es posible marcar en el diálogo emergente la opción Obtener contenido de la escena o Enviar contenido de la escena para incluir también, junto con la petición o devolución, los materiales usados en la escena.

Nota

La primera vez que se obtiene una carpeta no disponible previamente en la copia de trabajo (carpeta con ícono gris), se obtendrán los archivos contenidos en dicha carpeta, pero no sus subcarpetas. La siguiente vez que se obtenga la carpeta (carpeta con ícono de color), se obtendrá el contenido completo de la carpeta, incluyendo el de sus subcarpetas.

Truco

Para obtener la versión más reciente de una carpeta o archivo, desde el repositorio central hacia la copia de trabajo local:

  1. Hacer clic derecho sobre el ícono de la carpeta en el árbol de carpetas, o el ícono del archivo en el Explorador y elegir Obtener en el menú.
  2. Si se estuviera obteniendo un archivo de escena (formato TNZ), en el diálogo emergente marcar la opción Obtener contenido de la escena, si se desea obtener también los archivos usados en la misma.
  3. Hacer clic en el botón Actualizar.

Truco

Para enviar la versión modificada de una carpeta o archivo desde la copia de trabajo local hacia el repositorio central:

  1. Hacer clic sobre el ícono de la carpeta en el árbol de carpetas o el ícono del archivo en el Explorador y elegir Enviar en el menú.
  2. En el dialogo emergente hacer alguna de las siguientes cosas:
  • Si se está enviando una carpeta, marcar los archivos y carpetas contenidos en la misma, que deberán ser enviados al repositorio central.
  • Si se está enviando un archivo de escena (formato TNZ), activar la opción Enviar contenido de la escena, si se desea enviar también los archivos usados en la misma.
  1. Ingresar un comentario, si es oportuno, y hacer clic en el botón Enviar.

Edición de archivos

Al usar el sistema de control de versiones, para poder modificar archivos es necesario colocarlos en modo Edición antes de cargarlos en OpenToonz; en caso contrario serán cargados en modo de sólo lectura.

edit

La operación Editar «bloquea» el archivo, de forma que sólo el usuario que ejecute dicho comando sea capaz de modificarlo (previniendo así que otros usuarios que usen el mismo repositorio central lo desbloqueen y sean capaces de modificarlo). En el momento en que se está por colocar un archivo en modo edición, es posible ingresar un Comentario, para informar a otros usuarios acerca de la operación de edición que se está por realizar.

edit_scene

Al intentar editar un archivo de escena (formato TNZ), en el diálogo emergente es posible marcar la opción Editar contenido de la escena, para poder editar también el material usado en la misma. Si se elige editar sólo el archivo de escena, o si algún material usado en la misma se encontrara actualmente siendo editado por otros usuarios del mismo repositorio central, los fotogramas bloqueados se mostrarán con un ícono de prohibido, en la Cinta de nivel.

edit_frame_range

También se encuentra disponible el comando Editar rango de fotogramas para permitir editar de solamente los fotogramas necesarios de cualquier nivel de animación Vectorial de Toonz o Imagen de Toonz. De esta manera, es posible que distintos usuarios trabajen al mismo tiempo diferentes en rangos de fotogramas dentro del mismo nivel de animación.

unlock

Para liberar archivos del modo edición, de forma que otros usuarios puedan trabajar en ellos, es posible usar el comando Desbloquear.

Nota

Los archivos que están siendo editados por otros usuarios se encuentran en modo de sólo lectura (o bloqueados), mediante el uso del atributo correspondiente del sistema de archivos. Por esta razón, cambiar manualmente esta propiedad usando el sistema operativo (en vez de los comandos apropiados del sistema de control de versiones), puede acarrear serias inconsistencias en el sistema de control de versiones.

Truco

Para editar un archivo actualizado:

  1. Hacer clic derecho sobre el archivo y elegir Editar en el menú.
  2. En el diálogo emergente, si se estuviera editando un archivo de escena (formato TNZ), marcar la opción Editar contenido de la escena si se desea editar también los archivos usados en la misma.
  3. Ingresar un comentario, si es oportuno, y hacer clic en el botón Editar.

Truco

Para editar un archivo más antiguo que la versión disponible en el repositorio central:

  1. Hacer clic derecho sobre el archivo y elegir Editar en el menú.
  2. En el diálogo emergente, si se estuviera editando un archivo de escena (formato TNZ), marcar la opción Editar contenido de la escena si se desea editar también los archivos usados en la misma.
  3. Ingresar un comentario, si es oportuno, y realizar alguna de las siguientes cosas:
  • Hacer clic en el botón Obtener y editar para obtener la última versión de los archivos y editarlos.
  • Hacer clic en el botón Editar para editar la versión de los archivos que se encuentra actualmente en la copia de trabajo local.

Truco

Para editar solamente los fotogramas necesarios del archivo de un nivel Toonz:

  1. Hacer clic derecho sobre el archivo y elegir Editar rango de fotogramas en el menú.
  2. En el diálogo emergente definir el rango de fotogramas que se desea editar.
  3. Ingresar un comentario, si es oportuno, y hacer clic en el botón Editar.

Truco

Para liberar un archivo del modo edición:

Hacer clic derecho sobre el archivo y elegir Desbloquear en el menú.

Truco

Para comprobar el estado de edición de un archivo bloqueado:

Hacer clic derecho sobre el archivo y elegir Información de edición en el menú.

Recuperación de revisiones de archivos

Una de las principales ventajas de usar un sistema de control de versiones es que en todo momento se encuentra disponible el historial de revisiones, para cada archivo de la base de datos de la producción. Esto significa que es posible recuperar de manera sencilla versiones anteriores de cualquier archivo.

Para recuperar versiones antiguas de archivos es posible usar el comando Obtener revisión. Al ser usado en un único archivo, muestra una línea de tiempo con todas las versiones del mismo; en dicha línea de tiempo es posible revisar las distintas versiones del archivo, usando las miniaturas e información correspondientes, y seleccionar qué versión obtener para su edición.

get_revision

Al obtener una revisión de un archivo de escena (formato TNZ), en el diálogo emergente es posible marcar la opción Obtener contenido de la escena para obtener también las revisiones de todo el material usado en la misma.

get_revision_multiple_files

Al ser usado sobre una selección de varios archivos, el comando abre un diálogo que permite especificar la hora, día, semana o fecha de la versión de los archivos que se desea recuperar.

Truco

Para recuperar una versión anterior de un archivo:

  1. Hacer clic derecho sobre el archivo y elegir Obtener revisión en el menú.
  2. En el diálogo emergente buscar la versión del archivo en la que se está interesado y seleccionarla; si se está recuperando un archivo de escena (formato TNZ), es posible activar la opción Obtener contenido de la escena si se desea recuperar también los archivos usados en la misma.
  3. Realizar una de las siguientes cosas:
  • Hacer clic en el botón Obtener revisión seleccionada para obtener la versión del archivo seleccionada.
  • Hacer clic en el botón Obtener la última revisión para obtener la última versión del archivo.

Truco

Para recuperar una versión anterior de una selección de varios archivos:

  1. Hacer clic derecho sobre cualquiera de los archivos seleccionados y elegir Obtener revisión en el menú.
  2. En el diálogo emergente especificar qué tan antigua tiene que ser la versión de los archivos deseada, haciendo una de las siguientes cosas:
  • Especificar una hora en horas y minutos.
  • Especificar una cantidad de días.
  • Especificar una cantidad de semanas.
  • Especificar una fecha y hora exacta.
  1. Hacer clic en el botón Actualizar.

Descripción de los íconos de carpetas y archivos

Es posible saber, mirando los íconos de las carpetas y archivos de la copia de trabajo local, si los mismos se encuentran actualizados o no a la última versión del repositorio central, así como si los archivos están siendo editados por otros usuarios, etc.

Nota

Si el Explorador de archivos estuviera mostrando los mismos en forma de Lista, la información acerca del estado del control de versiones será mostrado en la columna etiquetada Control de versiones.

Para carpetas se utilizan los siguientes íconos:

  • grey_folder Un ícono gris de carpeta es usado para representar a las que están únicamente disponibles en el repositorio. Es posible usar el comando Obtener para copiarlas a la copia de trabajo local.
  • colored_folder_with_yellow_mark Un ícono de carpeta en color con una marca amarilla es usado para representar a aquellas cuyo contenido en la copia de trabajo no está actualizado y por lo tanto no coincide con el contenido en el repositorio: este es el caso cuando existen archivos modificados o nuevos en la copia de trabajo o en el repositorio. Es posible usar el comando Obtener para copiarlos a la copia de trabajo.
  • colored_folder_with_green_mark Un ícono de carpeta en color con una marca verde es usado para representar a aquellas cuyo contenido en la copia de trabajo se encuentra actualizado y coincide con el contenido en el repositorio.
  • colored_folder_with_plus_mark Un ícono de carpeta en color con un signo de más es usado para representar a aquellas disponibles únicamente en la copia de trabajo. Es posible usar el comando Enviar para copiarlas al repositorio central.

Para archivos se utilizan los siguientes íconos:

  • Un ícono gris genérico es usado para representar archivos que están únicamente disponibles en el repositorio. Es posible usar el comando Obtener para copiarlos a la copia de trabajo local.
  • grey_mark_check Un ícono de archivo con un signo de verificación gris es usado para representar a aquellos cuyo contenido en la copia de trabajo se encuentra actualizado y coincide con el contenido en el repositorio. Los archivos se encuentran en modo de sólo lectura y deberán colocarse en modo edición para poder ser modificados.
  • green_mark_check Un ícono de archivo con un signo de verificación verde es usado para representar a aquellos que se encuentran en la copia de trabajo en modo edición.
  • half_grey_mark_check Un ícono de archivo con un signo de verificación verde sobre un fondo gris y blanco es usado para representar a aquellos que se encuentran en la copia de trabajo y que están parcialmente en modo edición.
  • red_exclamation_mark_check Un ícono de archivo con un signo de admiración rojo es usado para representar a aquellos cuya versión en la copia de trabajo es más nueva que la disponible en el repositorio, esto es porque han sido modificados localmente. Es posible usar el comando Enviar para copiarlos al repositorio central.
  • half_grey_red_exclamation_mark_check Un ícono de archivo con un signo de admiración rojo sobre un fondo gris y blanco es usado para representar a aquellos cuya versión en la copia de trabajo es parcialmente más nueva que la disponible en el repositorio, esto es porque han sido modificados localmente. Es posible usar el comando Enviar para copiarlos al repositorio central.
  • orange_exclamation_mark_check Un ícono de archivo con un signo de admiración naranja es usado para representar a aquellos cuya versión en la copia de trabajo es más antigua que la disponible en el repositorio, esto es porque han sido modificados remotamente por otro usuario. Es posible usar el comando Obtener para copiarlos a la copia de trabajo local.
  • lock_mark Un ícono de archivo con un candado es usado para representar a aquellos que otros usuarios han colocado en modo edición. Para estos archivos sólo será posible revisar la información acerca del usuario que se encuentra editando el mismo.
  • half_grey_lock_mark Un ícono de archivo con un candado sobre un fondo gris y blanco es usado para representar a aquellos que otros usuarios han colocado parcialmente en modo edición.
  • blue_plus_mark Un ícono de archivo con un signo de más es usado para representar a aquellos disponibles únicamente en la copia de trabajo. Es posible usar el comando Enviar para copiarlos al repositorio central.