En juillet 2020 Ian Barker a fait un webinaire et un article sur l'utilisation de Git qui m'ont incité à me pencher un peu plus sur la question de ce gestionnaire de sources omniprésent dans le milieu du développement et que je n'utilisais pas jusque là.
Git est un projet open source créé à l'origine par Linus Torvalds. Il permet de gérer des versions de sources sur différents types de projets et de les héberger chez soi, sur ses serveurs ou sur des plateformes en ligne comme GitHub, GitLab, Assembla, CodeCommit, Bitbucket et plein d'autres. Le projet propose un outil en ligne de commande utilisable localement comme en client/serveur. Il existe aussi des surcouches graphiques pour s'en servir plus simplement selon le système d'exploitation utilisé.
RAD Studio (Delphi et C++Builder) comme Xcode, Eclipse ou Visual Studio gèrent les commandes de base de ce système de synchronisation en standard ou avec des extensions. L'intégration de git dans RAD Studio va assez loin mais ne propose pas la manipulation des branches ni l'accès direct aux dépôts gérés en SSH pour le moment. Peut-être l'une des choses qui pourraient arriver avec une prochaine version puisque Embarcadero a annoncé dans sa roadmap de novembre 2020 que des évolutions sur la gestion de versions sont envisagées pour la 10.5
Les plateformes d'hébergement de dépôts de sources proposent différentes formules (gratuites ou payantes) et vont jusqu'à intégrer la gestion de tickets publics ou privés liés à des versions et la gestion de tâches affectées aux développeurs sur des projets.
Je ne suis pas rentré dans les détails de l'utilisation de git même si j'ai montré les manipulations de bases et ai été obligé d'aller plus loin que prévu suite à une petite erreur lors d'une synchro (ce qui démontre à quel point git est à la fois puissant et bien conçu). Les points évoqués lors de ce webinar ont été les suivants :
- Introduction
- Notions sur Git
- Installation et configuration de Git
- Travail sur un projet local
- Travail sur un projet distant
- Utilisation avec Github
- Participer à un projet open source
- Conclusion
Vous pouvez revoir cette session et en télécharger le PDF de la présentation si vous le désirez.
Ne voulant pas trop dépasser des deux heures que j'avais prévues pour cette présentation je n'ai pas montré comment travailler avec des projets sur GitHub en dehors de la participation à des projets open sources, mais le fonctionnement est bien expliqué dans les nombreuses ressources disponibles en ligne et dans la documentation de GitHub.
Je n'ai pas non plus parlé du fichier .gitignore qui permet d'éviter de se trimbaler des fichiers inutiles dans les dépôts de code lors des commit. GitHub en propose toute une collection en accès libre, n'oubliez pas d'utiliser celui de Delphi ou celui du C++ dans vos projets C++Builder pour être tranquilles.
Pour aller plus loin je vous recommande ces quelques liens :
- La page Wikipedia consacrée à git
- La documentation officielle de git qui propose plusieurs vidéos de démo des bases et de nombreuses ressources dans plusieurs langues
- D'user et abuser de "git help XXX" en y remplaçant XXX par la commande qui vous intéresse
- Les cours sur OpenClassrooms, Udemy ou celui de Victor Sabatier chez Elephorm (un peu dur à suivre au début mais ça passe par la suite)
- A avoir à portée de main au moins pour démarrer, le mémento git publié chez Eyrolles est bien pratique. Les Editions ENI en ont également publié un.
- Pour vous familiariser avec la gestion des branches, le site Learn Git Branching est un must (ou en tout cas m'a semblé très bien foutu pour jouer ce rôle).
- Vous avez aussi Git Immersion qui propose une formation pratique à suivre pas à pas, mais utilise le langage Ruby comme base de travail. Rien ne vous empêche de le faire avec Delphi ou autre chose si vous le souhaitez.
- Enfin vous avez également un Wikibooks consacré à git. C'est un ouvrage communautaire qui se base sur les questions et solutions proposées sur StackOverflow au sujet de git et d'autres sites d'entraide entre développeurs.
Dernier webinaire de 2020, je vous donne rendez-vous dans quelques semaines pour attaquer 2021.
N'hésitez pas à me soumettre des idées de sujets et me faire vos remarques par rapport aux présentations que vous avez suivies en direct ou en rediffusion. Vous pouvez également me contacter si vous avez des besoins de soutien technique ponctuel, de formation à Delphi ou désirez partager des idées et solutions avec le reste du monde à travers ces présentations.
La liste complète de mes présentations est disponible ici. Les vidéos de rediffusion sont aussi accessible sur la chaîne YouTube de Barnsten à laquelle vous pouvez vous abonner pour ne rien louper.