Renommer les banches master de projets Azure DevOps sans cloner tous vos repositories
Actuellement, nous sommes nombreux à renommer les branches master de Git. « master » étant offensant pour nombre d’utilisateurs, « main » fait son grand retour (comme on pouvait le faire avant avec TFVC).
Quand on a beaucoup de projets, il peut s’avérer long d’avoir à cloner localement tous ses repository (ou d’avoir à les mettre à jour).
Avec Azure DevOps, on a la possibilité d’effectuer l’intégralité de ses opérations via l’interface web.
Ceci n’est pas possible avec GitHub. Il vous faudra effectuer ces opérations via la ligne de commande. Il faudra aussi changer la branche à défaut via l’interface web de GitHub avant de supprimer la branche master.
Workflow à executer
Le workflow type est le suivant
- Créer une branche main à partir de la branche master.
- Faire de la branche main la branche à défaut (pour le téléchargement et la comparaison)
- Supprimer la branche master.
Si vos projets utilisent Azure Pipeline, il faut penser à changer les noms des pipelines et des releases via les sites Azure DevOps. Pour les builds classiques les triggers de builds peuvent aussi être changés via le site. Les build Yaml peuvent aussi être éditées en ligne.
Création de la branche main
Prenons le cas d’un projet simple contenant uniquement deux branches (master et develop). La banche develop a deux commit d’avance (ce qui permet d’avoir un point de repère par la suite).
Pour créer la branche main, on peut utiliser la commande « new branch » en haut de page, ou passer via le menu de la branche master.
Il n’y a plus qu’à saisir le nom de notre nouvelle branche et s’assurer qu’elle est bien créée à partir de la branche master.
La branche créée est alors identique à la branche master.
Définir la branche à défaut
Toujours à partir de la même interface, on peut désigner la branche main comme branche à défaut. Cela passe par le menu de la branche et la commande « set as default branch ».
La modification est immédiatement visible.
Suppression de la branche master
Via le menu de la branche master, il suffit d’utiliser la commande « delete branch ».
Et voilà.
Conclusion
J’ai effectué les renommages sur 15 projets Azure DevOps et 12 projets GitHub (Côté Azure, 20% en ligne, le reste via un terminal). Tout ce faisant via un seul et même écran, cela m’a évité de perdre du temps à jongler entre les outils, les interfaces, les téléchargements lors des activités de modification et de vérification (le contrôle étant primordial pour éviter de perdre du code).
Azure DevOps a encore un petit train d’avance par rapport à GitHub concernant la gestion des branches.
Si vous avez joué avec les stratégies de sécurité d’Azure DevOps, il faudra penser à les modifier pour permettre la suppression de la branche master et appliquer les stratégies sur la nouvelle branche main. Là encore, tout se fera via une seule et même interface (Project settings > Repositories)