Limpiando automáticamente las ramas o branches de un proyecto en Azure DevOps y Visual Studio 2019
Introducción
Cuando trabajamos con proyectos dentro de Azure DevOps y Visual Studio 2019, habitualmente se trabaja con feature branches u otras estrategias que nos permiten crear diferentes ramas dentro de una iteración.
No es raro tampoco, que una rama dure más de una iteración, ni tampoco que una vez realizado el correspondiente merge, y aunque nuestro flujo de trabajo sea muy ordenado, dejemos esa rama un poco ahí tirada de aquella manera.
El caso es que cuando cerramos un sprint y nos ponemos a analizar el sprint completo, podemos encontrarnos con un auténtico jardín de features branches que están depositadas en nuestro repositorio.
Una buena práctica comúnmente establecida es que para cada sprint, limpiemos ese jardín de branches, pero sino lo hacemos con frecuencia, al finalizar el siguiente sprint podemos tener mucho ruido en nuestro repositorio.
Eliminar branches en Azure DevOps no se actualiza en Visual Studio 2019
Así que lo que muchas veces hacemos, es ir a Azure DevOps y eliminar allí todas esas branches que después del sprint, han sido mergeadas, y cerradas por lo tanto.
Una vez eliminadas, si hacemos un fetch en Visual Studio 2019, veremos que las branches siguen apareciendo.
¿Porqué?.
Eso es justo lo que voy a detallar en esta entrada, ya que por defecto, esa opción no está habilitada y la tenemos que habilitar nosotros.
Limpiando o podando las branches en Visual Studio 2019
Por defecto, cuando hacemos un fetch, deberíamos sincronizar el estado y esas ramas eliminadas en nuestro repositorio, no deberían aparecer ya en el entorno, pero la verdad es que siguen apareciendo.
La forma de resolver esta situación es realmente sencilla.
Iremos a Settings.
Y dentro de Settings, ir a las Global Settings de Git.
Y ya dentro de las Global Settings, deberemos cambiar la opción Prune remote branches during fetch, de Unset que es como está por defecto, a True.
Una vez hecho esto, haremos nuevamente un fetch.
Y si comprobamos el estado de situación ahora, veremos que si se ha sincronizado perfectamente con Azure DevOps.
Happy Coding!