Suivre et partager ses sources avec Gitlab: un...

29
Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion Suivre et partager ses sources avec Gitlab: un exemple avec L A T E X Matthieu Boileau, Alexis Palaticky CNRS - Université de Strasbourg 19 janvier 2016 & 1 / 28

Transcript of Suivre et partager ses sources avec Gitlab: un...

Page 1: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 2: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 3: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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 messaged’accompagnement)

• Un logiciel de suivi de version (VCS pour Version Control System enanglais) comme Git gère très bien tout projet qui se présente sous la formede fichiers sources

• C’est le meilleur moyen de collaborer sur des sources !

3 / 28

Page 4: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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 :3 les scripts ou code de calcul

3 les documents LATEX

3 les fichiers texte deconfiguration

3 les sources html

3 etc.

Ce que Git gère mal :7 les gros fichiers binaires

7 les documents Microsoft Office ouOpenOffice

7 le texte formaté en général

7 les bases de données (type mysql)

7 etc.

4 / 28

Page 5: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion

Comparaison avec Owncloud

Owncloud GitType 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 version7 très limité 3 outil avancé

Partage7 modèle centraliséuniquement

3 modèle distribué

7 synchronisations au-tomatiques uniquement

3 on contrôle les synchronisations

Prise en main3 très simple 7 demande un apprentissage

5 / 28

Page 6: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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 http://git-scm.com/book)

6 / 28

Page 7: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion

Git en pratique

Git en ligne de commande dans leTerminal :

g i t addg i t commit −m "My commit message "g i t s t a t u sg i t l o gg i t pushg i t p u l lg i t checkoutg i t d i f fe t c .

7 / 28

Page 8: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 9: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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 http://git-scm.com/book)

• Les fichiers qui ne sont pas des sources (fichiers objets, fichiers decompilations, exécutables, etc.) peuvent être ignorés.

9 / 28

Page 10: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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 (branchemaster) sans limiter les développements (branche develop)

• les branches sont particulièrement utiles pour le travail collaboratif et parsujet (topic).

(Source: Pro Git book http://git-scm.com/book)

10 / 28

Page 11: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

(Source: Pro Git book http://git-scm.com/book)

En pratique :

• Côté serveur : GitLab• Côté clients (John et Jessica) :

ligne de commande ou clientgraphique (GitHub Desktop,par exemple)

11 / 28

Page 12: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 13: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion

Gitlab comme serveur git

GitLab à l’IRMA :

- https://gitlab.math.unistra.fr

- 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

Page 14: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 15: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 16: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion
Page 17: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion
Page 18: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion
Page 19: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 20: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion
Page 21: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 22: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion
Page 23: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion
Page 24: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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

Page 25: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion
Page 26: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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 undocument 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

Page 27: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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 Eulersur l’appendice II d’un ouvrage réel : le Methodus Inveniendi.

Johann Bernoulli(1667 - 1748)

Leonhard Euler(1707 - 1783)

Le Methodus Inveniendid’Euler (1744)

C’est parti !

27 / 28

Page 28: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

Intérêt et applications de git GitLab comme serveur git Démonstration Conclusion

Documentation et bonnes pratiques

Documentation

ProGit book : uneréférence (libre)

• Pro Git book : http://git-scm.com/book

• la documentation officielle de Git :http://git-scm.com/documentation

• un manuel concis : http://gitref.org/index.html

• la doc GitLab et son aide contextuelle :https://gitlab.math.unistra.fr

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

Page 29: Suivre et partager ses sources avec Gitlab: un …irma.math.unistra.fr/~palatick/presentationgitlab.pdfIntérêt et applications de gitGitLab comme serveur gitDémonstrationConclusion

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 !

[email protected]

29 / 28