El poderoso TF.exe command

Es posible ejecutar muchas de las tareas de administración y configuración de Visual Studio Team Foundation Server (aún el online) a través de una consola de comandos (ergo a través de scripts y PowerShell también). De igual manera se pueden realizar tareas de control de versiones y compilado.

En este sencillo ejemplo, muestro como usar TF para obtener la información de el último Changeset que se ha incluido en nuestro TFS Online.

Esto me surgió como una necesidad dada una estrategia de versionamiento unificada con el control de código fuente que he diseñado a través del tiempo que he dedicado a desarrollar mis productos y servicios.

Esta estrategia sencillamente consiste en agregarle el número del changeset al final del número de versión. Ej. v 1.2.1.227 donde el 227 es el número del changeset al que se le hizo checkin con los cambios que generaron la versión como tal.

En general, uno pone esos números de versión en archivos como el AssemblyInfo.cs para después acceder fácilmente de manera programática a ellos.

image

Así que lo único que hay que saber es cuál es el último número de chageset para saber cuál es el siguiente.

Pero puede pasar que no baste solo con sumar uno al último número que tenemos en nuestro archivo:

En TFS existen los workspaces que son agrupaciones de proyectos con los que trabajamos. Cuando se hace un checkin de uno de esos proyectos, el número de changeset dentro del workspace se incrementa automáticamente, independientemente del proyecto que haya hecho checkin. O sea que si estamos en nuestro proyecto A en una versión *.223, uno diría que la siguiente es *.224 pero puede pasar que hayamos hecho antes de esto checkin en otro proyecto y el changeset se haya pasado ya a 224, de manera que para identificar la versión deberíamos usar *.225.

Entonces tuve la pregunta… existe una forma fácil de saber cuál es el último changeset del workspace sin tener que ir al portal a consultarla?

Obvio que con todo el poder de Visual Studio, la hay. Y es la herramienta TF.

Ella tiene entre sus numerosos comandos, el de changeset y éste entre sus parámetros, el de /latest que obviamente nos brinda información del último changeset de un workspace dado.

Precisamente para especificar el workspace dado se usa /collection:"urldelworkspace” y de esta manera si no nos habíamos logeado antes, el sistema abre una ventana de login de Microsoft account para hacer el login y luego continuar trabajando ya con estas credenciales, hasta que especifiquemos otro workspace con diferentes credenciales.

En general el comando para obtener el número del último changeset en nuestro workspaces del tfs sería:
tf changeset /latest /collection: " https://mitfs.visualstudio.com/defaultcollection "

y éste se puede ejecutar desde cualquier consola de Visual Studio o de manera más cómoda, de acuerdo a como lo muestro en este post.

Una vez ejecutado este comando, se nos abre esta ventana:

image

Obsérvese cómo aparece el número del último changeset (justo lo que yo necesitaba). Adicionalmente se puede editar la info de ese changeset y ver hasta qué archivos cambiaron y demás, sin tener que acudir al portal.

Este fue solo un ejemplo del uso de TF. Existen muchos otros comandos que seguramente nos facilitarán la vida de desarrolladores avanzados y automatización y demás…