Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Suivre et partager ses sources avec Gitlab:
un exemple avec LATEX
Matthieu Boileau, Alexis Palaticky
CNRS - Université de Strasbourg
19 janvier 2016
&
1 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Outline
1 Intérêt et applications de git
2 GitLab comme serveur git
3 Démonstration
4 Conclusion
2 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Pourquoi utiliser un suivi de version ?
• Enregistrer les modifications d’un jeu de fichiers au cours du temps
• Rester réversible :
− pouvoir retourner à une version antérieure,
− comparer avec une version antérieure
• Documenter les modifications (date, auteur et message
d’accompagnement)
• Un logiciel de suivi de version (VCS pour Version Control System en
anglais) comme Git gère très bien tout projet qui se présente sous la forme
de fichiers sources
• C’est le meilleur moyen de collaborer sur des sources !
3 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Pourquoi utiliser un suivi de version ?
Ce que Git gère très bien : Ce que Git gère mal :
3 les scripts ou code de calcul 7 les gros fichiers binaires
3 les documents LATEX 7 les documents Microsoft Office ou
3 les fichiers texte de OpenOffice
configuration 7 le texte formaté en général
3 les sources html 7 les bases de données (type mysql)
3 etc. 7 etc.
4 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Comparaison avec Owncloud
Owncloud Git
Type de fichiers
3 tous types 3 suivi pour les fichiers sources
7 pas de suivi pour les binaires
7 pas adapté aux gros fichiers
(sauf avec git-lfs)
Suivi de version
7 très limité 3 outil avancé
Partage
7 modèle centralisé 3 modèle distribué
uniquement
7 synchronisations au- 3 on contrôle les synchronisations
tomatiques uniquement
Prise en main
3 très simple 7 demande un apprentissage
5 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Un suivi de version distribué
• les clients possèdent un miroir complet de la base de données du serveur
• on peut travailler en mode déconnecté et synchroniser quand on le souhaite
• indirectement, on crée des sauvegardes multiples
(Source: Pro Git book [Link]
6 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Git en pratique
Git en ligne de commande dans le
Terminal :
git add
git commit −m "My commit m e s s a g e "
git status
git log
git push
git pull
git checkout
git diff
etc .
7 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Git en pratique
Avec une interface graphique très simple comme GitHub Desktop, on couvre
≈ 90% de l’utilisation courante de git :
8 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Les quatre statuts des fichiers suivis
• Le cycle de vie d’un fichier suivi avec Git
(Source: Pro Git book [Link]
• Les fichiers qui ne sont pas des sources (fichiers objets, fichiers de
compilations, exécutables, etc.) peuvent être ignorés.
9 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Git et le système des branches
• Git permet de créer et fusionner très facilement des branches
• un système de branches permet de préserver une version stable (branche
master) sans limiter les développements (branche develop)
• les branches sont particulièrement utiles pour le travail collaboratif et par
sujet (topic).
(Source: Pro Git book [Link]
10 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Travail collaboratif avec Git : le workflow typique d’une petite équipe
En pratique :
• Côté serveur : GitLab
• Côté clients (John et Jessica) :
ligne de commande ou client
graphique (GitHub Desktop,
par exemple)
(Source: Pro Git book [Link]
11 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Gitlab comme serveur git
Quelques précisions sur GitLab :
• GitLab ? Outil opensource de gestion de projets git
• Pourquoi GitLab à l’IRMA ?
– Besoin de travail collaboratif sur du code ou des publications
– Pour avoir la maîtrise sur le paramétrage et la création des comptes
– Gérer des fonctionnalités avancées comme l’intégration continue
12 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Gitlab comme serveur git
GitLab à l’IRMA :
- [Link]
- Serveur sauvegardé en interne (VDP et Netbackup)
- Mise à jour de GitLab et mises à jour systèmes régulières
- Serveur accessible de l’extérieur, possibilité de comptes externes
13 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
GitLab comme serveur git
Les fonctionnalités de GitLab :
- Création rapide de projets avec gestion des droits (Public, privé,...)
- Historique des commits
- Outils annexes : statistiques, wiki
- Notifications par mail
- Intégration continue
14 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
GitLab comme serveur git
Les fonctionnalités de GitLab :
- Création rapide de projets avec gestion des droits (Public, privé,...)
15 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
GitLab comme serveur git
Les fonctionnalités de GitLab :
- Historique des commits
19 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
GitLab comme serveur git
Les fonctionnalités de GitLab :
- Outils annexes : statistiques, wiki
21 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
GitLab comme serveur git
Les fonctionnalités de GitLab :
- Notifications par mail
24 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Démonstration
• Objectif : montrer l’intérêt d’utiliser Git pour collaborer sur un
document LATEX
• Programme de la démo :
– création et partage de projet dans GitLab
– importation d’un article en LATEX
– modifications, synchronisation (push, pull)
– notifications par mail
– édition collaborative (avec et sans conflits)
– compilation des différences (git latexdiff)
26 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Démonstration
Imaginons une collaboration fictive entre Johann Bernoulli et Leonhard Euler
sur l’appendice II d’un ouvrage réel : le Methodus Inveniendi.
Johann Bernoulli Leonhard Euler
(1667 - 1748) (1707 - 1783)
Le Methodus Inveniendi
d’Euler (1744)
C’est parti !
27 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
Documentation et bonnes pratiques
Documentation
• Pro Git book : [Link]
• la documentation officielle de Git :
[Link]
• un manuel concis : [Link]
• la doc GitLab et son aide contextuelle :
[Link]
ProGit book : une
référence (libre)
Quelques recommandations
• En LATEX, ne pas écrire plus d’une phrase par ligne
• Faire de nombreux commits (Git est fait pour ça) contenant des
modifications petites et cohérentes plutôt que l’inverse
• Utiliser les branches !
28 / 28
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion
À venir
• Un tutorial pour démarrer avec GitLab à l’IRMA
• Un sondage pour une formation d’initiation à Git
Merci de votre attention !
info@[Link]
29 / 28