SlideShare une entreprise Scribd logo
Utilisation de git
dans Delphi
Webinaire du 22 décembre 2020
PRÉSENTATEUR
MVP Embarcadero
Prestataire informatique freelance et formateur Delphi
CV et contacts :
https://www.linkedin.com/in/patrickpremartin/
Blog Delphi/Pascal :
https://developpeur-pascal.fr
Outils Embarcadero
Les meilleurs outils de développement multi-
plateformes. Créez une fois et déployez des
applications modernes sur chaque plateforme.
Support Technique
Nos techniciens sont à votre service à tout
moment pour répondre à vos questions et
vous fournir des informations sûres.
Distributeur Officiel
Partenaire exclusif de Embarcadero
Technologies, largement reconnu pour
ses produits de programmation primés.
B A R N S T E N
QUI
Site : https://www.barnsten.com – Contacts FR : equipe@barnsten.com
NOTRE
Société de prestations informatiques.
Edition de sites Internet, logiciels, vidéos et livres.
Centre de formation référencé sur Datadock.
Infos et contacts : https://olfsoftware.fr
Formations en entreprise : https://se-former-a-delphi.fr
Formations en ligne : https://apprendre-delphi.fr
O L F S O F T W A R E
AU
• 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
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Quand on développe seul, la gestion de sources
et de versions n’est pas toujours la priorité.
C’est surtout vrai chez « les anciens » qui
n’avaient pas d’outils dédiés lors de leur
apprentissage de l’informatique et n’en ont pas
ressenti le besoin depuis. Un ZIP ou la copie d’un
dossier suffisent pour les archivages.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Elle le devient quand les choses se compliquent :
travail à plusieurs sur le même projet, travail
depuis plusieurs appareils à la fois.
La gestion des ZIP et des copies de fichiers
devient un trop gros casse tête pour éviter les
erreurs.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Dans ce cas il est fortement recommandé de
passer par une solution centralisée pour gérer ses
fichiers.
On parle de VCS (version control system) ou de
SCM (source control management).
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Vous avez probablement déjà entendu parler de
l’un de ces trois là : Subversion (SVN), Mercurial
et Git.
Ils sont pris en charge nativement dans l’IDE de
Delphi et C++Builder.
© Patrick Prémartin / developpeur-pascal.fr
INTROD
Dans cette session nous allons voir git, à quoi il
sert, comment s’en servir pour des projets
personnels, internes à une organisation mais
aussi tournés pour du partage avec la
communauté de développeurs.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git a été créé par Linus Torvalds en 2005 pour
gérer le noyau de Linux et ses dépendances.
En 10 ans il est devenu le système le plus
populaire dans le milieu open source et
maintenant professionnel.
Plus d’infos sur https://fr.wikipedia.org/wiki/Git
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git est un gestionnaire de versions de codes
sources mais pas seulement.
De base il sert à archiver les sources de projets et
pouvoir évoluer dans le temps pour chaque
fichier qu’il prend en charge.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git permet également de gérer des séries de
modifications, les fusionner, les annuler sous la
forme de transactions et de branches.
Interfacé avec un système d’intégration continue
il permet d’automatiser la génération de plusieurs
versions de vos projets quasiment sans
intervention humaine.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
L’outil se présente sous la forme d’un programme
console classique. Tout se fait en ligne de
commande ou par l’intermédiaire d’une couche
graphique proposée par de nombreux éditeurs.
Pour utiliser git il faut en connaître la philosophie
et les commandes de base.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git travaille par projet.
Un projet correspond à un dossier, son
arborescence descendante et certains fichiers qui
s’y trouvent.
Les dépôts de code ou repository correspondent
à un stockage quelque part de « projets git ».
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git n’a pas de distinction entre serveur ou client.
C’est le même programme qui permet de
synchroniser des données dans un dossier local
comme avec un dépôt de code en cloud.
Voici quelques hébergeurs de dépôts de code
connus : GitHub, GitLab, BitBucket, CodeCommit,
Assembla, SourceForge…
© Patrick Prémartin / developpeur-pascal.fr
GIT :
On peut aussi créer notre propre dépôt de code,
soit avec juste git (un peu de ssh sur une
distribution Linux peut aider), soit en utilisant
l’une des interfaces graphiques proposées par
exemple par GitLab, Gogs, Gitea…
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Un projet git est composé de branches. Par
défaut on est généralement sur la branche
« master ».
On peut en créer d’autres à partir de n’importe
quelle modification puis les manipuler pour les
fusionner et créer une multitude de versions du
même projet.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Le système de branches permet par exemple de
gérer les versions de production, test et
développement d’un logiciel.
On peut ajouter une branche par développeur sur
chacune d’entre elles ou une branche de
correctifs.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Les branches peuvent ensuite être regroupées
lors d’une opération de fusion qui permet de
gérer les éventuels conflits (fichiers modifiées au
même endroit et ne contenant pas les mêmes
modifications).
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Illustration provenant du tutoriel de Atlassian sur
https://www.atlassian.com/fr/git/tutorials/using-
branches
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Le commit est la base de Git. Comme pour les
bases de données gérant des transactions, c’est
un regroupement de modifications de fichiers
validées et enregistrées « à vie » dans le projet.
Chaque commit a une référence unique et un
commentaire.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Les branches sont composées de commit dans
leur ordre de validation.
Les commit sont inaltérables.
Toute opération sur un projet git fait l’objet d’un
commit.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Dans un projet git (hors fichiers de git) il existe
trois types de fichiers : ignoré, pas encore pris en
compte, pris en compte.
Les fichiers pris en compte sont soit modifiés
(créé/supprimé/modifié), en attente de validation
ou validés dans la branche en cours.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
En pratique on a les fichiers sur lesquels on
travaille, dans la branche en cours du projet, et
les fichiers qu’on a regroupés pour le prochain
commit.
Ceux-ci se trouvent dans un groupe appelé
staging area. Le commit suivant validera la staging
area.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
En plus du commit il existe aussi une zone
tampon dans laquelle on peut faire un équivalent
du commit mais elle est réversible puisque
validée uniquement localement.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Git est fiable mais comme pour tout logiciel avec
une base de données on n’est pas à l’abri d’une
anomalie.
Il est fortement recommandé de faire des
sauvegardes de vos dépôts de code / projets dans
les différentes versions qui vous intéressent (par
exemple chaque version publiée de vos logiciels).
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Tout ce qui se trouve dans un dépôt git est visible
par toutes les personnes ayant un accès à ce
projet.
Il n’y a pas de suppression possible de données !
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Ne créez jamais de dépôt public en cloud pour
vos projets internes. Créez les en mode privé.
NE STOCKEZ JAMAIS de mots de passes dans vos
sources ou de clés (signature/chiffrement) avec
vos projets : ils seraient visibles sur les dépôts
pour n’importe qui ayant accès un jour dessus.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
D’une manière générale restez méfiants envers
les plateformes d’hébergement de dépôts de
codes en ligne. Du jour au lendemain elles
peuvent fermer, couper les accès, tomber en
panne, se faire pirater, boguer et publier en
public des projets privés…
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Soyez conscients des avantages mais aussi des
risques.
Limitez les dépendances autant que possible.
Faites des backups chez vous (et en dehors bien
entendu) !
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Ne faites pas de commit de fonctionnalités que
vous n’avez pas testées.
Quand vous travaillez à plusieurs ne synchronisez
pas de projet avec des commit non testés pour
éviter que toute l’équipe se trouve avec un
logiciel inutilisable !
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Pour nous l’installation sous Windows est
suffisante. Il suffit de télécharger et installer
https://gitforwindows.org
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Une fois installé il faut s’identifier auprès de git
pour « signer » chaque modification. Ces données
sont accessibles à vie pour les personnes ayant
accès au projet.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
• Enregistrez votre nom et l’adresse email à
laquelle vous contacter. Si vous participez à un
projet public, mettez une adresse avec un bon
antispams et antivirus…
• Enregistrez une clé SSH si vous voulez utiliser
ce protocole pour travailler. Pas pris en charge
par RAD Studio pour le moment mais pratique
pour les saisies en ligne de commande.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Installez une surcouche graphique pour vous
simplifier la vie : TortoiseGit, SourceTree,
GitExtensions, …
Si vous travaillez avec Github, il est recommandé
de passer par Github desktop pour simplifier vos
opérations sur les projets associés à votre
compte.
© Patrick Prémartin / developpeur-pascal.fr
GIT :
Du côté de RAD Studio il suffit de remplir les
informations disponibles dans « Outils / Options /
Contrôle de version / Git »
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Pas besoin d’avoir un serveur pour travailler avec
git. Il suffit d’un dossier dans lequel on l’active
pour travailler.
Git n’est pas un logiciel client / serveur.
Il fonctionne de façon autonome, sans réseau,
tant qu’on n’a pas besoin de se synchroniser avec
des projets gérés sur un hébergement ailleurs.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
• Créer un dossier ou ouvrir un dossier existant
• Activer git dedans
• Travailler sur les fichiers du dossier
La gestion de versions et de branches est
pleinement fonctionnelle.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Si on travaille à plusieurs ou avec plusieurs
ordinateurs sur les mêmes projets il est
préférable d’avoir un dépôt de code sur un
serveur (sur Internet, un NAS ou un ordinateur du
réseau local).
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
De base il suffit que git soit installé et accessible
de l’extérieur, par exemple avec ssh.
De nombreux tutoriels existent sur Internet. Pour
la démo j’ai suivi celui-ci sur un serveur VPS chez
OVH équipé d’Ubuntu :
https://linuxize.com/post/how-to-setup-a-git-
server/
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Une fois la partie serveur configurée, il suffit d’y
créer un projet sous forme de dépôt de code
distant. Ca génère un fichier d’extension git qui
sert pour les synchronisations.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Le dépôt distant (appelé REMOTE) est la base de
stockage. Tout le travail se fait en local, y compris
la gestion du dépôt distant.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Les commandes à connaître sont :
• CLONE pour créer le projet localement à partir
d’un projet distant (et de son fichier .git)
• PULL (FETCH + MERGE) pour mettre à jour la
branche activée du projet local à partir du
dépôt distant.
• PUSH pour envoyer nos COMMIT (et autres
modifs) sur le dépôt distant.
© Patrick Prémartin / developpeur-pascal.fr
TRAVAILLER
Notez que les fichiers et modifications non
validées restent en local.
Globalement seules les modifications ayant fait
l’objet d’un COMMIT sont synchronisées.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
GitHub est l’un des nombreux services
d’hébergement de projets. Plutôt orienté open
source GitHub permet aussi de stocker des
projets privés.
En plus de la partie sources, GitHub propose aussi
la gestion de tickets d’incidents, de versions, un
wiki par projet et l’hébergement de sites web.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
GitHub et les autres plateformes équivalentes ont
l’avantage de proposer un peu plus qu’un simple
archivage de projets git en ligne et accessible
partout.
Outre l’utilisation pour nos propres projets on
peut collaborer sur d’autres et avec une
multitude de développeurs.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
Pour nos projets le fonctionnement est le même
que sur un serveur à nous.
Pour collaborer sur d’autres projets il y a
quelques subtilités.
© Patrick Prémartin / developpeur-pascal.fr
CONTRIBUER
Les projets open sources sont attachés à un
compte unique.
Certains autorisent un accès direct, d’autres
préfèrent par mesure de précaution ne pas laisser
libre accès et fonctionnent par soumission de
groupes de modifications.
© Patrick Prémartin / developpeur-pascal.fr
CONTRIBUER
Pour les premiers, lorsqu’on fait partie des
développeurs ayant un accès complet, pas de
différence avec le travail habituel. On clone le
projet, on crée une branche de travail et quand
on a fini on intègre nos modifications au projet
global.
© Patrick Prémartin / developpeur-pascal.fr
CONTRIBUER
Pour les seconds il n’est pas possible de
soumettre directement nos modifications sur le
projet de base. On a deux étapes
supplémentaires.
© Patrick Prémartin / developpeur-pascal.fr
CONTRIBUER
Comme pour le reste il existe de nombreux
tutoriels en ligne sur le sujet, notamment sur
GitHub et ses pairs.
Vous pouvez vous inspirer de celui-ci :
https://akrabat.com/the-beginners-guide-to-
contributing-to-a-github-project/
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
Première étape pour participer à un projet public
: faire un fork.
Ca consiste en une copie du projet d’origine sur
notre compte.
On travaille ensuite sur ce projet comme
n’importe lequel des nôtres.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
Dernière étape de la participation à un projet
open source : la soumission de nos modifications.
Cette opération s’appelle un PULL REQUEST.
© Patrick Prémartin / developpeur-pascal.fr
GITHUB :
Le PULL REQUEST se fait au niveau de notre
repository, à partir de notre branche de travail
que l’on va pouvoir soumettre pour approbation
à une branche du projet d’origine.
Charge au gestionnaire de ce projet d’accepter ou
refuser notre lot de modifications.
© Patrick Prémartin / developpeur-pascal.fr
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Je suis loin d’avoir tout dit sur git et son utilisation
en général.
Vous avez les manipulations de base et pouvez
vous documenter avec les très nombreuses
ressources disponibles en ligne.
CONCL
© Patrick Prémartin / developpeur-pascal.fr
Même si vous travaillez seul, en local, sur vos
projets, habituez-vous à travailler avec un VCS…
et pensez à faire quand même une sauvegarde de
vos fichiers à chaque fois que vous sortez une
version de vos logiciels, c’est toujours plus sûr
d’avoir une version figée quelque part au cas où.
CONCL
© Patrick Prémartin / developpeur-pascal.fr
S’il y avait un dernier conseil à vous donner suite
à cette session de présentation ce serait de vous
familiariser avec git ou d’autres outils de gestion
de version.
Tôt ou tard vous en aurez besoin.
PLUS
© Patrick Prémartin / developpeur-pascal.fr
Pour des ressources complémentaires,
télécharger cette présentation et accéder aux
exemples, rendez-vous sur :
https://developpeur-pascal.fr/p/_400a-
webinaire-du-22-decembre-2020-utilisation-de-
git-dans-delphi.html
(RE)VOIR
© Patrick Prémartin / developpeur-pascal.fr
La rediffusion de ce webinaire devrait être
disponible sur la chaîne YouTube de Barnsten :
https://www.youtube.com/c/BarnstenFrance/vid
eos
Vous y trouverez également d’autres vidéos dont
une formation complète aux bases de la
programmation avec Delphi en VCL et FMX.
PROCHAINS
© Patrick Prémartin / developpeur-pascal.fr
La liste des sujets et des dates pour 2021 sera
communiquée courant janvier.
Surveillez vos emails.
Les rediffusions, détails et inscriptions sont aussi
disponibles depuis https://developpeur-
pascal.fr/p/_6007-webinaires.html
LIVRES
© Patrick Prémartin / developpeur-pascal.fr
Des livres sur le développement avec Delphi
sortent régulièrement. Voici les 3 derniers :
• Delphi GUI programming with FireMonkey
• Delphi Event-based and Asynchronous
Programming
• Object Pascal Handbook (Delphi 10.4 Sydney
Edition)
Liste complète sur https://delphi-books.com/
QUESTIONS
© Patrick Prémartin / developpeur-pascal.fr
CONTACTEZ NOUS

Contenu connexe

DOCX
Rapport de PFE
PPTX
Présentation pfe
PPTX
Présentation pfe - Etude, conception et réalisation d'une application web de ...
PDF
Rapport PFE réalisation d’un Framework Kinect
PDF
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
PDF
Méthodes agiles: Scrum et XP
PDF
Conception et développement d'une application Android pour TUNISAIR
PDF
Rapport pfe-ayoub mkharbach
Rapport de PFE
Présentation pfe
Présentation pfe - Etude, conception et réalisation d'une application web de ...
Rapport PFE réalisation d’un Framework Kinect
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Méthodes agiles: Scrum et XP
Conception et développement d'une application Android pour TUNISAIR
Rapport pfe-ayoub mkharbach

Tendances (20)

PDF
Conception et developpement d'une application mobile Android e-location
PDF
salwfrarapp137.pdf
PDF
Rapport- Conception et réalisation d'une plateforme social learning
PDF
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
PDF
Conception et développement d'une application de gestion de production et de ...
PDF
Pfe conception et développement d'une application web GMAO JEE
KEY
Uml classes Par les exemples
PDF
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
PDF
Rapport de projet de fin d'étude licence informatique et multimédia
PDF
PFE BI - INPT
PDF
Conception et réalisation d’un Système d’information des étudiants du départe...
PDF
Conception et développement d’une plateforme d'import-export avec paiement en...
DOCX
Rapport Pfe Application Web e-commerce Symfony2
DOCX
conception et réalisation plateforme collaboratif basant sur la methode agile...
PPTX
Présentation PFE
PDF
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
PDF
Rapport pfe talan_2018_donia_hammami
PDF
Soutenance PFE ingénieur génie logiciel
PPTX
presentation PFE.pptx
DOCX
rapport MobiResto
Conception et developpement d'une application mobile Android e-location
salwfrarapp137.pdf
Rapport- Conception et réalisation d'une plateforme social learning
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Conception et développement d'une application de gestion de production et de ...
Pfe conception et développement d'une application web GMAO JEE
Uml classes Par les exemples
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Rapport de projet de fin d'étude licence informatique et multimédia
PFE BI - INPT
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et développement d’une plateforme d'import-export avec paiement en...
Rapport Pfe Application Web e-commerce Symfony2
conception et réalisation plateforme collaboratif basant sur la methode agile...
Présentation PFE
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe talan_2018_donia_hammami
Soutenance PFE ingénieur génie logiciel
presentation PFE.pptx
rapport MobiResto
Publicité

Similaire à Utilisation de git avec Delphi (20)

PDF
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
PPTX
Présentation Git & GitHub
PPTX
Formation gitlab-ci Zied Zinelabidine.pptx
PDF
Diffuser nos logiciels et leurs mises à jour
PDF
Comment développer pour Linux avec Delphi
PPTX
gwxcwwxcwxcwxcwxcwxcwxcwxcwxcwxcwxcit.pptx
PDF
Le social coding pour la Creative Technologie
PDF
Présentation du versioning avec Git
ODP
Comment travailler avec les logiciels Open Source
PDF
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
PDF
Git & Rstudio vincent guyader
PPTX
Versioning avec Git
PDF
les commandes Git que vous devez absolument connaitre!.pdf
PDF
Faire des applications web avec Delphi
PDF
Phigrate
PDF
Déploiement et débogage à distance
PPTX
Adama Coulibaly.pptx
ODP
Tizen sdk-solutionslinux-20130529
PDF
Coder sans coder : Delphi en mode no code !
PDF
Chaine de production pipeline
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
Présentation Git & GitHub
Formation gitlab-ci Zied Zinelabidine.pptx
Diffuser nos logiciels et leurs mises à jour
Comment développer pour Linux avec Delphi
gwxcwwxcwxcwxcwxcwxcwxcwxcwxcwxcwxcit.pptx
Le social coding pour la Creative Technologie
Présentation du versioning avec Git
Comment travailler avec les logiciels Open Source
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Git & Rstudio vincent guyader
Versioning avec Git
les commandes Git que vous devez absolument connaitre!.pdf
Faire des applications web avec Delphi
Phigrate
Déploiement et débogage à distance
Adama Coulibaly.pptx
Tizen sdk-solutionslinux-20130529
Coder sans coder : Delphi en mode no code !
Chaine de production pipeline
Publicité

Plus de pprem (20)

PDF
Apprendre La Programmation Avec Delphi (01/27)
PDF
Using FireMonkey as a game engine
PDF
Using Delphi as a no code development environment
PDF
Easy coding a multi device game with FireMonkey
PDF
Utiliser FireMonkey comme moteur de jeux vidéo
PDF
Quoi de neuf dans la version 11 Alexandria ?
PDF
Delphi et les tests unitaires
PDF
Développer une application pour Android TV avec Delphi
PDF
Sauvegarder et restaurer l'état des applications mobiles
PDF
Gérer le clavier virtuel sous iOS et Android
PDF
Internationaliser les projets VCL / FMX
PDF
Utiliser des dessins vectoriels à la place d'images
PDF
Embarquer une base de données locale dans vos logiciels et applications mobiles
PDF
Utiliser l'EDI pour développer en multiplateforme
PDF
Faire une interface adaptive avec la VCL
PDF
Faire une interface adaptive avec FireMonkey
PDF
QR codes et codes à barres sous Delphi
PDF
Créer des composants visuels sans faire de composant
PDF
Des solutions de synchronisation de données
PDF
Découvrez FireDAC pour FMX
Apprendre La Programmation Avec Delphi (01/27)
Using FireMonkey as a game engine
Using Delphi as a no code development environment
Easy coding a multi device game with FireMonkey
Utiliser FireMonkey comme moteur de jeux vidéo
Quoi de neuf dans la version 11 Alexandria ?
Delphi et les tests unitaires
Développer une application pour Android TV avec Delphi
Sauvegarder et restaurer l'état des applications mobiles
Gérer le clavier virtuel sous iOS et Android
Internationaliser les projets VCL / FMX
Utiliser des dessins vectoriels à la place d'images
Embarquer une base de données locale dans vos logiciels et applications mobiles
Utiliser l'EDI pour développer en multiplateforme
Faire une interface adaptive avec la VCL
Faire une interface adaptive avec FireMonkey
QR codes et codes à barres sous Delphi
Créer des composants visuels sans faire de composant
Des solutions de synchronisation de données
Découvrez FireDAC pour FMX

Utilisation de git avec Delphi

  • 1. Utilisation de git dans Delphi Webinaire du 22 décembre 2020
  • 2. PRÉSENTATEUR MVP Embarcadero Prestataire informatique freelance et formateur Delphi CV et contacts : https://www.linkedin.com/in/patrickpremartin/ Blog Delphi/Pascal : https://developpeur-pascal.fr
  • 3. Outils Embarcadero Les meilleurs outils de développement multi- plateformes. Créez une fois et déployez des applications modernes sur chaque plateforme. Support Technique Nos techniciens sont à votre service à tout moment pour répondre à vos questions et vous fournir des informations sûres. Distributeur Officiel Partenaire exclusif de Embarcadero Technologies, largement reconnu pour ses produits de programmation primés. B A R N S T E N QUI Site : https://www.barnsten.com – Contacts FR : equipe@barnsten.com
  • 4. NOTRE Société de prestations informatiques. Edition de sites Internet, logiciels, vidéos et livres. Centre de formation référencé sur Datadock. Infos et contacts : https://olfsoftware.fr Formations en entreprise : https://se-former-a-delphi.fr Formations en ligne : https://apprendre-delphi.fr O L F S O F T W A R E
  • 5. AU • 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 © Patrick Prémartin / developpeur-pascal.fr
  • 6. INTROD Quand on développe seul, la gestion de sources et de versions n’est pas toujours la priorité. C’est surtout vrai chez « les anciens » qui n’avaient pas d’outils dédiés lors de leur apprentissage de l’informatique et n’en ont pas ressenti le besoin depuis. Un ZIP ou la copie d’un dossier suffisent pour les archivages. © Patrick Prémartin / developpeur-pascal.fr
  • 7. INTROD Elle le devient quand les choses se compliquent : travail à plusieurs sur le même projet, travail depuis plusieurs appareils à la fois. La gestion des ZIP et des copies de fichiers devient un trop gros casse tête pour éviter les erreurs. © Patrick Prémartin / developpeur-pascal.fr
  • 8. INTROD Dans ce cas il est fortement recommandé de passer par une solution centralisée pour gérer ses fichiers. On parle de VCS (version control system) ou de SCM (source control management). © Patrick Prémartin / developpeur-pascal.fr
  • 9. INTROD Vous avez probablement déjà entendu parler de l’un de ces trois là : Subversion (SVN), Mercurial et Git. Ils sont pris en charge nativement dans l’IDE de Delphi et C++Builder. © Patrick Prémartin / developpeur-pascal.fr
  • 10. INTROD Dans cette session nous allons voir git, à quoi il sert, comment s’en servir pour des projets personnels, internes à une organisation mais aussi tournés pour du partage avec la communauté de développeurs. © Patrick Prémartin / developpeur-pascal.fr
  • 11. GIT : Git a été créé par Linus Torvalds en 2005 pour gérer le noyau de Linux et ses dépendances. En 10 ans il est devenu le système le plus populaire dans le milieu open source et maintenant professionnel. Plus d’infos sur https://fr.wikipedia.org/wiki/Git © Patrick Prémartin / developpeur-pascal.fr
  • 12. GIT : Git est un gestionnaire de versions de codes sources mais pas seulement. De base il sert à archiver les sources de projets et pouvoir évoluer dans le temps pour chaque fichier qu’il prend en charge. © Patrick Prémartin / developpeur-pascal.fr
  • 13. GIT : Git permet également de gérer des séries de modifications, les fusionner, les annuler sous la forme de transactions et de branches. Interfacé avec un système d’intégration continue il permet d’automatiser la génération de plusieurs versions de vos projets quasiment sans intervention humaine. © Patrick Prémartin / developpeur-pascal.fr
  • 14. GIT : L’outil se présente sous la forme d’un programme console classique. Tout se fait en ligne de commande ou par l’intermédiaire d’une couche graphique proposée par de nombreux éditeurs. Pour utiliser git il faut en connaître la philosophie et les commandes de base. © Patrick Prémartin / developpeur-pascal.fr
  • 15. GIT : Git travaille par projet. Un projet correspond à un dossier, son arborescence descendante et certains fichiers qui s’y trouvent. Les dépôts de code ou repository correspondent à un stockage quelque part de « projets git ». © Patrick Prémartin / developpeur-pascal.fr
  • 16. GIT : Git n’a pas de distinction entre serveur ou client. C’est le même programme qui permet de synchroniser des données dans un dossier local comme avec un dépôt de code en cloud. Voici quelques hébergeurs de dépôts de code connus : GitHub, GitLab, BitBucket, CodeCommit, Assembla, SourceForge… © Patrick Prémartin / developpeur-pascal.fr
  • 17. GIT : On peut aussi créer notre propre dépôt de code, soit avec juste git (un peu de ssh sur une distribution Linux peut aider), soit en utilisant l’une des interfaces graphiques proposées par exemple par GitLab, Gogs, Gitea… © Patrick Prémartin / developpeur-pascal.fr
  • 18. GIT : Un projet git est composé de branches. Par défaut on est généralement sur la branche « master ». On peut en créer d’autres à partir de n’importe quelle modification puis les manipuler pour les fusionner et créer une multitude de versions du même projet. © Patrick Prémartin / developpeur-pascal.fr
  • 19. GIT : Le système de branches permet par exemple de gérer les versions de production, test et développement d’un logiciel. On peut ajouter une branche par développeur sur chacune d’entre elles ou une branche de correctifs. © Patrick Prémartin / developpeur-pascal.fr
  • 20. GIT : Les branches peuvent ensuite être regroupées lors d’une opération de fusion qui permet de gérer les éventuels conflits (fichiers modifiées au même endroit et ne contenant pas les mêmes modifications). © Patrick Prémartin / developpeur-pascal.fr
  • 21. GIT : Illustration provenant du tutoriel de Atlassian sur https://www.atlassian.com/fr/git/tutorials/using- branches © Patrick Prémartin / developpeur-pascal.fr
  • 22. GIT : Le commit est la base de Git. Comme pour les bases de données gérant des transactions, c’est un regroupement de modifications de fichiers validées et enregistrées « à vie » dans le projet. Chaque commit a une référence unique et un commentaire. © Patrick Prémartin / developpeur-pascal.fr
  • 23. GIT : Les branches sont composées de commit dans leur ordre de validation. Les commit sont inaltérables. Toute opération sur un projet git fait l’objet d’un commit. © Patrick Prémartin / developpeur-pascal.fr
  • 24. GIT : Dans un projet git (hors fichiers de git) il existe trois types de fichiers : ignoré, pas encore pris en compte, pris en compte. Les fichiers pris en compte sont soit modifiés (créé/supprimé/modifié), en attente de validation ou validés dans la branche en cours. © Patrick Prémartin / developpeur-pascal.fr
  • 25. GIT : En pratique on a les fichiers sur lesquels on travaille, dans la branche en cours du projet, et les fichiers qu’on a regroupés pour le prochain commit. Ceux-ci se trouvent dans un groupe appelé staging area. Le commit suivant validera la staging area. © Patrick Prémartin / developpeur-pascal.fr
  • 26. GIT : En plus du commit il existe aussi une zone tampon dans laquelle on peut faire un équivalent du commit mais elle est réversible puisque validée uniquement localement. © Patrick Prémartin / developpeur-pascal.fr
  • 27. GIT : Git est fiable mais comme pour tout logiciel avec une base de données on n’est pas à l’abri d’une anomalie. Il est fortement recommandé de faire des sauvegardes de vos dépôts de code / projets dans les différentes versions qui vous intéressent (par exemple chaque version publiée de vos logiciels). © Patrick Prémartin / developpeur-pascal.fr
  • 28. GIT : Tout ce qui se trouve dans un dépôt git est visible par toutes les personnes ayant un accès à ce projet. Il n’y a pas de suppression possible de données ! © Patrick Prémartin / developpeur-pascal.fr
  • 29. GIT : Ne créez jamais de dépôt public en cloud pour vos projets internes. Créez les en mode privé. NE STOCKEZ JAMAIS de mots de passes dans vos sources ou de clés (signature/chiffrement) avec vos projets : ils seraient visibles sur les dépôts pour n’importe qui ayant accès un jour dessus. © Patrick Prémartin / developpeur-pascal.fr
  • 30. GIT : D’une manière générale restez méfiants envers les plateformes d’hébergement de dépôts de codes en ligne. Du jour au lendemain elles peuvent fermer, couper les accès, tomber en panne, se faire pirater, boguer et publier en public des projets privés… © Patrick Prémartin / developpeur-pascal.fr
  • 31. GIT : Soyez conscients des avantages mais aussi des risques. Limitez les dépendances autant que possible. Faites des backups chez vous (et en dehors bien entendu) ! © Patrick Prémartin / developpeur-pascal.fr
  • 32. GIT : Ne faites pas de commit de fonctionnalités que vous n’avez pas testées. Quand vous travaillez à plusieurs ne synchronisez pas de projet avec des commit non testés pour éviter que toute l’équipe se trouve avec un logiciel inutilisable ! © Patrick Prémartin / developpeur-pascal.fr
  • 33. GIT : Pour nous l’installation sous Windows est suffisante. Il suffit de télécharger et installer https://gitforwindows.org © Patrick Prémartin / developpeur-pascal.fr
  • 34. GIT : Une fois installé il faut s’identifier auprès de git pour « signer » chaque modification. Ces données sont accessibles à vie pour les personnes ayant accès au projet. © Patrick Prémartin / developpeur-pascal.fr
  • 35. GIT : • Enregistrez votre nom et l’adresse email à laquelle vous contacter. Si vous participez à un projet public, mettez une adresse avec un bon antispams et antivirus… • Enregistrez une clé SSH si vous voulez utiliser ce protocole pour travailler. Pas pris en charge par RAD Studio pour le moment mais pratique pour les saisies en ligne de commande. © Patrick Prémartin / developpeur-pascal.fr
  • 36. GIT : Installez une surcouche graphique pour vous simplifier la vie : TortoiseGit, SourceTree, GitExtensions, … Si vous travaillez avec Github, il est recommandé de passer par Github desktop pour simplifier vos opérations sur les projets associés à votre compte. © Patrick Prémartin / developpeur-pascal.fr
  • 37. GIT : Du côté de RAD Studio il suffit de remplir les informations disponibles dans « Outils / Options / Contrôle de version / Git » © Patrick Prémartin / developpeur-pascal.fr
  • 38. TRAVAILLER Pas besoin d’avoir un serveur pour travailler avec git. Il suffit d’un dossier dans lequel on l’active pour travailler. Git n’est pas un logiciel client / serveur. Il fonctionne de façon autonome, sans réseau, tant qu’on n’a pas besoin de se synchroniser avec des projets gérés sur un hébergement ailleurs. © Patrick Prémartin / developpeur-pascal.fr
  • 39. TRAVAILLER • Créer un dossier ou ouvrir un dossier existant • Activer git dedans • Travailler sur les fichiers du dossier La gestion de versions et de branches est pleinement fonctionnelle. © Patrick Prémartin / developpeur-pascal.fr
  • 40. TRAVAILLER Si on travaille à plusieurs ou avec plusieurs ordinateurs sur les mêmes projets il est préférable d’avoir un dépôt de code sur un serveur (sur Internet, un NAS ou un ordinateur du réseau local). © Patrick Prémartin / developpeur-pascal.fr
  • 41. TRAVAILLER De base il suffit que git soit installé et accessible de l’extérieur, par exemple avec ssh. De nombreux tutoriels existent sur Internet. Pour la démo j’ai suivi celui-ci sur un serveur VPS chez OVH équipé d’Ubuntu : https://linuxize.com/post/how-to-setup-a-git- server/ © Patrick Prémartin / developpeur-pascal.fr
  • 42. TRAVAILLER Une fois la partie serveur configurée, il suffit d’y créer un projet sous forme de dépôt de code distant. Ca génère un fichier d’extension git qui sert pour les synchronisations. © Patrick Prémartin / developpeur-pascal.fr
  • 43. TRAVAILLER Le dépôt distant (appelé REMOTE) est la base de stockage. Tout le travail se fait en local, y compris la gestion du dépôt distant. © Patrick Prémartin / developpeur-pascal.fr
  • 44. TRAVAILLER Les commandes à connaître sont : • CLONE pour créer le projet localement à partir d’un projet distant (et de son fichier .git) • PULL (FETCH + MERGE) pour mettre à jour la branche activée du projet local à partir du dépôt distant. • PUSH pour envoyer nos COMMIT (et autres modifs) sur le dépôt distant. © Patrick Prémartin / developpeur-pascal.fr
  • 45. TRAVAILLER Notez que les fichiers et modifications non validées restent en local. Globalement seules les modifications ayant fait l’objet d’un COMMIT sont synchronisées. © Patrick Prémartin / developpeur-pascal.fr
  • 46. GITHUB : GitHub est l’un des nombreux services d’hébergement de projets. Plutôt orienté open source GitHub permet aussi de stocker des projets privés. En plus de la partie sources, GitHub propose aussi la gestion de tickets d’incidents, de versions, un wiki par projet et l’hébergement de sites web. © Patrick Prémartin / developpeur-pascal.fr
  • 47. GITHUB : GitHub et les autres plateformes équivalentes ont l’avantage de proposer un peu plus qu’un simple archivage de projets git en ligne et accessible partout. Outre l’utilisation pour nos propres projets on peut collaborer sur d’autres et avec une multitude de développeurs. © Patrick Prémartin / developpeur-pascal.fr
  • 48. GITHUB : Pour nos projets le fonctionnement est le même que sur un serveur à nous. Pour collaborer sur d’autres projets il y a quelques subtilités. © Patrick Prémartin / developpeur-pascal.fr
  • 49. CONTRIBUER Les projets open sources sont attachés à un compte unique. Certains autorisent un accès direct, d’autres préfèrent par mesure de précaution ne pas laisser libre accès et fonctionnent par soumission de groupes de modifications. © Patrick Prémartin / developpeur-pascal.fr
  • 50. CONTRIBUER Pour les premiers, lorsqu’on fait partie des développeurs ayant un accès complet, pas de différence avec le travail habituel. On clone le projet, on crée une branche de travail et quand on a fini on intègre nos modifications au projet global. © Patrick Prémartin / developpeur-pascal.fr
  • 51. CONTRIBUER Pour les seconds il n’est pas possible de soumettre directement nos modifications sur le projet de base. On a deux étapes supplémentaires. © Patrick Prémartin / developpeur-pascal.fr
  • 52. CONTRIBUER Comme pour le reste il existe de nombreux tutoriels en ligne sur le sujet, notamment sur GitHub et ses pairs. Vous pouvez vous inspirer de celui-ci : https://akrabat.com/the-beginners-guide-to- contributing-to-a-github-project/ © Patrick Prémartin / developpeur-pascal.fr
  • 53. GITHUB : Première étape pour participer à un projet public : faire un fork. Ca consiste en une copie du projet d’origine sur notre compte. On travaille ensuite sur ce projet comme n’importe lequel des nôtres. © Patrick Prémartin / developpeur-pascal.fr
  • 54. GITHUB : Dernière étape de la participation à un projet open source : la soumission de nos modifications. Cette opération s’appelle un PULL REQUEST. © Patrick Prémartin / developpeur-pascal.fr
  • 55. GITHUB : Le PULL REQUEST se fait au niveau de notre repository, à partir de notre branche de travail que l’on va pouvoir soumettre pour approbation à une branche du projet d’origine. Charge au gestionnaire de ce projet d’accepter ou refuser notre lot de modifications. © Patrick Prémartin / developpeur-pascal.fr
  • 56. CONCL © Patrick Prémartin / developpeur-pascal.fr Je suis loin d’avoir tout dit sur git et son utilisation en général. Vous avez les manipulations de base et pouvez vous documenter avec les très nombreuses ressources disponibles en ligne.
  • 57. CONCL © Patrick Prémartin / developpeur-pascal.fr Même si vous travaillez seul, en local, sur vos projets, habituez-vous à travailler avec un VCS… et pensez à faire quand même une sauvegarde de vos fichiers à chaque fois que vous sortez une version de vos logiciels, c’est toujours plus sûr d’avoir une version figée quelque part au cas où.
  • 58. CONCL © Patrick Prémartin / developpeur-pascal.fr S’il y avait un dernier conseil à vous donner suite à cette session de présentation ce serait de vous familiariser avec git ou d’autres outils de gestion de version. Tôt ou tard vous en aurez besoin.
  • 59. PLUS © Patrick Prémartin / developpeur-pascal.fr Pour des ressources complémentaires, télécharger cette présentation et accéder aux exemples, rendez-vous sur : https://developpeur-pascal.fr/p/_400a- webinaire-du-22-decembre-2020-utilisation-de- git-dans-delphi.html
  • 60. (RE)VOIR © Patrick Prémartin / developpeur-pascal.fr La rediffusion de ce webinaire devrait être disponible sur la chaîne YouTube de Barnsten : https://www.youtube.com/c/BarnstenFrance/vid eos Vous y trouverez également d’autres vidéos dont une formation complète aux bases de la programmation avec Delphi en VCL et FMX.
  • 61. PROCHAINS © Patrick Prémartin / developpeur-pascal.fr La liste des sujets et des dates pour 2021 sera communiquée courant janvier. Surveillez vos emails. Les rediffusions, détails et inscriptions sont aussi disponibles depuis https://developpeur- pascal.fr/p/_6007-webinaires.html
  • 62. LIVRES © Patrick Prémartin / developpeur-pascal.fr Des livres sur le développement avec Delphi sortent régulièrement. Voici les 3 derniers : • Delphi GUI programming with FireMonkey • Delphi Event-based and Asynchronous Programming • Object Pascal Handbook (Delphi 10.4 Sydney Edition) Liste complète sur https://delphi-books.com/
  • 63. QUESTIONS © Patrick Prémartin / developpeur-pascal.fr