Después de trastear un poco con Xcode por fin he averiguado cómo funciona el cliente de SVN (no así el de Git, que supongo será parecido pero no consigo que funcione). Mi problema es que estaba obcecado en la forma de trabajar del plugin Subversive de Eclipse IDE para Java con el que he trabajado siempre.
Como no he encontrado por Internet ningún tutorial que explicara el funcionamiento, lo crearé yo, tanto para mi como para quien le pueda ser útil. Aquí se explicará cómo crear un proyecto nuevo, añadirlo al repositorio y trabajar con él, subiendo las modificaciones pertinentes.
- Necesitamos un repositorio de Subversion para nuestra tarea. Aquí no indicaré cual usar ya que no es el propósito del tutorial.
- Tras disponer de la URL del repositorio procedemos a abrir Xcode 4. Nos dirigimos a File > Source Control > Repositories… y se nos abrirá la ventana donde administraremos nuestros repositorios.
- Para añadir un repositorio nuevo pulsamos en el + de la esquina inferior izquierda de la ventana y seguidamente a la opción Add repository…
- En la nueva ventana que aparece indicamos un nombre para nuestro repositorio y en Location indicamos le URL de nuestro repositorio. Xcode se encargará de determinar si es Subversion o Git, por tanto no hace falta especificarlo. Cuando el indicador esté de color verde y se active el botón Next continuaremos con el alta del repositorio para trabajar en nuestro Mac.
- En el siguiente paso se nos preguntará por la ruta relativa a partir de la raíz del proyecto por defecto del trunk, tags y branches. Indicamos en mi caso “trunk”, “tags” y “branches” respectivamente. No presteis atención a los indicadores rojos. Terminamos pulsando en Add.
- Habrá aparecido nuestro repositorio en la lista de la izquierda. Si este tuviera unas credenciales para su acceso (como es mi caso) aparecerá un indicador en amarillo junto a este. Hacemos click sobre el repositorio y tras cargar un momento Xcode nos las pedirá para autenticarse contra el servidor.
- Tras pulsar OK verificará que todo es correcto y el indicador amarillo pasará a ser verde. Y si expandimos en la lista del repositorio veremos que habrá una carpeta para el Trunk, Tags y Branches. En mi caso como ya tenía cosas subidas al repositorio también me aparece el historial de los últimos commits.
- Pulsamos en Trunk, ya que en este caso nuestro código estará en la rama principal del repositorio y pulsamos en la opción que habrá aparecido en la parte inferior de la ventana Checkout
- Nos pedirá que le indiquemos un nombre para la carpeta donde se almacenará todo lo que contiene (si es un proyecto existente) o contendrá el Trunk en nuestro disco duro y la localización para esta. Pulsamos de nuevo en Checkout
- Aparecerá una nueva carpeta en la lista de nuestro repositorio que enlaza con esa carpeta donde hemos hecho Checkout. Aparecerá un indicador que nos avisa de que está en progreso el Checkout. Tras un breve instante (o mucho depende del tamaño de lo que contenga el Trunk) terminará y ya tendremos nuestra imagen en el disco duro del Trunk para poder trabajar.
Para abrir un proyecto existente en el repositorio
- Basta con abrirlo con normalidad con Xcode ya que se encontrará en la carpeta en la que hemos realizado el Checkout.
Para crear un proyecto nuevo en el repositorio
- Creamos nuestro proyecto como normalmente haríamos en Xcode 4 pero teniendo cuidado de crearlo dentro de la carpeta en la que hemos realizado el Checkout.
- A continuación volvemos a File > Source Control > Repositories… expandimos el repositorio de nuestra lista y hacemos click en la carpeta que enlaza con la que hemos hecho el Checkout y creado nuestro proyecto. A priori no debería de aparecer nada, salvo que ya hubiera algo subido con anterioridad.
- Pulsamos en la opción de la parte inferior de la ventana Commit y en la ventana que aparecerá debería mostrarse la carpeta del proyecto que acabamos de crear.
- Marcamos la carpeta, indicamos un mensaje para el commit en la parte inferior de la ventana y pulsamos el botón Commit. En la ventana del proyecto (no la de los repositorios) aparecerá en la parte superior una barra indicando el progreso de la subida de archivos. Cuando finalice desaparecerá.
- Ahora solo nos queda salir de Xcode 4, volver a entrar y abrir nuestro proyecto con normalidad y así nos aseguramos de que el IDE detecta bien que está versionado el código, y de esta manera cuando hagamos alguna modificación nos lo indicará.
- Los archivos con una A son nuevos, los que tienen una M han sido modificados y los que aparezcan con una D es que han sido eliminados fuera del control del IDE. Para subir los cambios basta con seleccionar todos los archivos con estos indicadores (no importa seleccionar también alguno que no tenga ya que será ignorado al subirlos) y pulsando el botón derecho del ratón sobre esta selección nos dirigimos a la opción Source Control > Commit Selected Files… donde aparecerá una ventana similar al del primer Commit donde podremos indicar qué archivos subiremos y el mensaje para el commit.
Para actualizar nuestro proyectos con cambios del repositorio
- Volvemos a ir a File > Source Control > Repositories…
- Hacemos click sobre la carpeta que enlaza con la imagen local del repositorio y pulsamos en Update. Xcode nos mostrará los cambios y podremos seleccionar cuáles descargar.
Para comparar versiones locales con remotas
- Seleccionamos el archivo a comparar y a continuación cambiamos a la vista de edición de Versiones pulsando el botón correspondiente (indicado en la imagen a continuación). La pantalla se partirá en dos esperando para que seleccionemos las versiones a comparar.
- Activamos el historial de versiones (indicado en la imagen a continuación) y nos aparecerá una columna oscura en la mitad de la pantalla que tras unos instantes algunas de las barritas horizontales se iluminarán indicando una versión en el servidor. Si pasamos el ratón sobre esta nos aparecerá el mensaje del commit correspondiente a esa versión.
- Hacemos click en el lado izquierdo o derecho de cada barrita para visualizar en el lado correspondiente de la pantalla la versión indicada por la barrita. Si en los dos lados de la pantalla tenemos seleccionada la misma versión no ser verán cambios, por lo que habrá que indicar en un lado una versión y en el otro la versión a comparar (indicado en la imagen a continuación).
- De esta forma podremos comparar el código de versiones anteriores y realizar cambios o volver a ese estado anterior.
Espero que este tutorial les sea de utilidad a más gente a parte de mi.