miércoles, 2 de octubre de 2013

Apéndice 1) Sourcetree, control de versiones

¡Muy buenas!

Con esta entrada del blog, mi intención es que tengáis configurado un control de versiones y un repositorio para vuestro código. Igualmente, es conveniente que aquellos seres que viven entre nosotros, llamados artistas, posean este conocimiento para poder tener el código más actualizado en nuestros proyectos y favorecer el hermoso fluir del trabajo.

He basado mi tutorial de otro en inglis' que os explica las bondades de porqué utilizar Git y hacer uso de BitBucket y el entorno SourceTree (Adam Single Unity GIT Tutorial). Básicamente, con lo que yo me quedé es lo siguiente:

  • Git se puede utilizar en Mac y muchos artistas trabajan con Mac.
  • BitBucket es gratuito y te da muchas opciones y posibilidades.
  • Sourcetree es de los creadores de Bitbucket así que la compatibilidad será buena. 

Os dejo inicialmente los enlaces a los diferentes sitios:

Bitbucket                    Repositorio para colocar vuestro código (e incluso assets)
SourceTree                 Entorno visual para trabajar con Git o Mercurial (Para Mac y Windows).

Para empezar, comenzaré con la creación de un repositorio en UDK. Al final, comento que carpetas se deben utilizar en un proyecto de Unity y cómo prepararlo antes de crear el repositorio. Los pasos son idénticos a los de UDK exceptuando las indicaciones mostradas allí.

NOTA: Aquellos que vayáis a utilizar exclusivamente para descarga, podéis saltaros esta parte  y pasar directamente a Repositorio Git para UDK sólo lectura (Clonar repositorio).
.

Repositorio Git para UDK

En primer lugar, crearemos una cuenta en Bitbucket.
Una vez que la tengamos creada podemos acceder a nuestra cuenta, y en portada tendremos una "Overview" de todos los repositorios que dispongamos. Os coloco un ejemplo visual:


Arriba tenéis un botón "mágico" que cuya etiqueta es Create. Si lo pulsáis os aparecerá para crear un repositorio. Veamos sus campos y cómo los he rellenado para mi proyecto:



Como veis, tenéis varias opciones. Podéis hacer el repositorio que sea público o privado. Utilizar Mercurial o Git y si queréis utilizar un sistema de seguimiento de problemas y wiki para ese repositorio concreto. El lenguaje de programación os deja seleccionar tanto UnrealScript como UnityScript como C#,etc...

Pulsamos Create Repository y procedemos a tener nuestro flamante repositorio.

En la pantalla que nos aparece a continuación debemos indicarle que queremos crear el repositorio desde el principio ("I'm starting from Scratch").

Allí nos da instrucciones de qué comandos debemos escribir para poder iniciar nuestro repositorio y dónde.
En nuestro caso, debemos iniciar un cmd (consola de comandos en windows) y navegar hasta la carpeta de nuestro proyecto de UDK. En mi caso:

C:\UDK\UDK-2013-07

Una vez allí,

git init git remote add origin
https://JDKnight@bitbucket.org/JDKnight/nullgame.git


Eso es para mi repositorio. Para el vuestro será siguiendo esta plantilla: 

git remote add origin
ssh://<BBUserName>@bitbucket.org/<BitBucketUserName>/<RepoName>.git


¡Ya tenemos preparado nuestro proyecto de UDK para ser utilizado por SourceTree y subir nuestro
código!

Instalamos SourceTree.

Una vez instalado y habiéndolo ejecutado, tendremos una pantalla de este estilo. Podemos añadir un
repositorio desde diferentes sitios marcados en la siguiente imagen:





 
 
Una vez lo pulsemos nos aparecerá la siguiente ventana:
 
 
Buscamos la misma carpeta en la que hemos realizado antes git init pulsando en el botón "..." a la derecha. Le ponemos nombre al repositorio en Name: y pulsamos Add.

Ahora aparecerá en los Bookmarks nuestro repositorio. Debemos seleccionar que ficheros deseamos en el mismo. Para ello, en la ventana Working Copy Changes, debemos seleccionar ficheros y subirlos arriba con las flechitas (arriba son los ficheros que se incluirán en nuestro repositorio).

Podemos ignorar ficheros haciendo botón derecho en ellos (ignore) y una vez hecho, podemos incluso ignorar carpetas enteras (Ignore everything beneath...). ¡Tened cuidado con ello!

Para nuestro proyecto de UDK debéis seleccionar las carpetas Development/Src/<VuestroGame>, UDKGame/Config/ Al menos de momento.
 
Una vez que sólo queden esas carpetas podéis pulsar el botón con dos flechitas hacia arriba.
Si os habéis equivocado ignorando ficheros, podéis consultar en esa carpeta el fichero .gitignore y modificarlo quitando aquellas rutas o ficheros que no queréis ignorar.
 
Una vez hecho esto, podéis pulsar el botón Commit, colocar los cambios realizados y proceder a pulsar Push. Elegid la rama que queréis pushear y palante.
 
Por último, es necesario que compartas tu proyecto con gente. En la página de BitBucket del administrador, puedes pulsar en Share (con un iconito de carta):
 
Si lo pulsas te aparecerá la siguiente ventana:

 Si pulsas en Manage this repository podrás acceder a mayor control de las personas que pueden leer, escribir o ser administradores de este repositorio. Es bastante intuitivo, así que no me enredaré mucho más aquí.
 

Repositorio Git para UDK sólo lectura (Clonar repositorio)


Si váis simplemente a bajar el código en vuestro equipo, el procedimiento es similar al anterior.  En primer lugar necesitáis saber dónde se encuentra vuestro repositorio en la nube.
Vuestros amigos programadores os podrán obsequiar con dicha dirección consultando desde la página de BitBucket del administrador del proyecto. Aquí:

Existe como podéis observar un botón que pone Clone in SourceTree que os la clonará directamente sin tener que pulsar en SourceTree en el siguiente botón:

Elijáis la opción que elijáis llegaréis a esta ventana:


En Destination Path tenéis que colocar la carpeta de UDK donde tenéis el proyecto. Del mismo modo, podéis colocar un nombre para vuestros repositorios en Name para identificarlos con más facilidad posteriormente.

Una vez realizado esto, podéis pulsar el botón Fetch para comprobar si hay nuevas versiones de vuestros proyectos teniéndolos seleccionados a la izquierda. Os aparecerán en el medio, las diferentes ramas y demás información. Seleccionando la rama más antigua (la que esté más arriba, en el camino de puntitos), podéis pulsar Pull para empezar a descargar los cambios que existan en vuestro proyecto. Si no los hay, al pulsar Fetch os habrá indicado que estáis actualizados.
 

Carpetas que debemos incluir en un proyecto de Unity y su Setup


En Unity debemos realizar un pequeño paso antes para dejar preparado nuestro proyecto.
En Edit->Project Settings->Editor en
  • Version Control Mode debemos colocar la opción Meta files. 
  • Asset Serialization Mixed.
Las carpetas que tenemos que incluir en estos repositorios son :
  • Assets  
  • ProjectSetting 
El resto de carpetas en el interior de tu proyecto de Unity puedes ignorarlas.

¡Ya estás listo para usar las bondades de un control de versiones como la copa de un pino!
¡ENHORABUENA!



1 comentario:

  1. Si le das a "create new repository" no tienes que hacer el git init y eso por consola.

    ResponderEliminar