Git Repositories

Calcul de hash et multiples remotes
authorCyrille Pontvieux <jrd@enialis.net>
Tue, 12 Apr 2016 22:25:02 +0000 (00:25 +0200)
committerCyrille Pontvieux <jrd@enialis.net>
Tue, 12 Apr 2016 22:25:10 +0000 (00:25 +0200)
supports/advanced/slides_git_advanced.md
supports/support_formateur.txt

index d2dd9b7..be8978c 100644 (file)
@@ -1,4 +1,16 @@
-# Git avancé
+# Formation Git<br>Workflow et concepts avancés
+.fx: first-slide
+
+<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/deed.fr"><img alt="CC-by-sa" style="display: inline;" src="cc-by-sa-80x15.png" title="La présentation « Git Basic » de Cyrille Pontvieux est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International"/></a>
+
+<a href="mailto:cyrille@enialis.net">Cyrille Pontvieux</a>
+
+<a href="http://www.viseo.com">Viseo</a>
+
+---
+
+# Rappels
+.fx: chapter
 
 ---
 
@@ -198,25 +210,53 @@ C'est ce qui permet de calculer le hash (sha1, 14 digits hexa) du commit.
 
 ---
 
-# Centralisé et décentralisé à la fois
-![](centr-decentr.png){: height=500px}
+# Calcul du hash
+
+Chaque changement dans une feuille de l'arbre implique un nouveau `sha1`
+{% dot calcul_du_hash.dot.png
+  digraph G {
+    graph [splines=false overlap=false bgcolor=transparent size=10]
+    node [shape=plaintext margin=0 fontcolor=black fontname=sans fontsize=20]
+    edge [color=blue minlen=2]
+
+    commit
+    parent_star [label="parent*"]
+    date
+    auteur
+    descr
+    tree
+    tree_star [label="tree*"]
+    blob_star [label="blob*"]
+    mode
+    nom
+    contenu_hash [label="hash du\ncontenu"]
 
+    commit      -> parent_star
+    commit      -> date
+    commit      -> auteur
+    commit      -> descr
+    commit      -> tree
+    tree        -> tree_star
+    tree        -> blob_star
+    blob_star   -> nom
+    blob_star   -> mode
+    blob_star   -> contenu_hash
+    
+    {rank=same; commit}
+    {rank=same; parent_star date auteur descr tree}
+    {rank=same; tree_star blob_star}
+    {rank=same; nom mode contenu_hash}
+  }
+%}
 # Presenter Notes
-- git webui
-- git daemon
+- déplacer un fichier ne prend pas de place
+- ajouter un nouveau fichier identique ne prend pas de place
+- détection des modification déjà présente. (potentiellement « nothing to do »)
 
 ---
 
-# Partager rapidement son dépôt
-##Git webui
-![](git-webui.png){: height=300px}
-## Partage RW avec git daemon
-    !console
-    $ git config daemon.receive-pack true && touch .git/git-daemon-export-ok
-    $ cd .. && git daemon --base-path=$PWD --reuseaddr $PWD/repo
-## Puis sur l'autre PC
-    !console
-    $ git clone git://xx.xx.xx.xx/repo
+# Workflow
+.fx: chapter
 
 ---
 
@@ -250,3 +290,50 @@ puis *mergée sur master* pour release et *backportée* dans la branche *develop
 - Une branche de feature peut être créée à chaque *User Story*.  
 - Elle peut être mergée ou rebasée au choix.
 - Le merge est préféré pour garder une trace de la branche.
+
+---
+
+# Remotes et partage
+.fx: chapter
+
+---
+
+# Centralisé et décentralisé à la fois
+![](centr-decentr.png){: height=500px}
+
+# Presenter Notes
+- git webui
+- git daemon
+
+---
+
+# Partager rapidement son dépôt
+##Git webui
+![](git-webui.png){: height=300px}
+## Partage RW avec git daemon
+    !console
+    $ git config daemon.receivepack true && touch .git/git-daemon-export-ok
+    $ cd .. && git daemon --base-path=$PWD --reuseaddr $PWD
+## Puis sur l'autre PC
+    !console
+    $ git clone git://xx.xx.xx.xx/repo
+
+---
+
+# Multiples remotes
+<div>
+Utilisations possibles :
+
+- Synchronisation de dépôts entre des plate-formes différentes
+- Partage de code non-poussé sur le central avec un collègue
+- Merge de dépôts
+
+</div>
+<div>
+Nommage :
+
+- Chaque `remote` aura son propre nom, `origin` n'est qu'une convention
+- Chaque dépôt aura son image locale, préfixée par son nom
+- Il est conseillé d'utiliser le nom du remote pour chaque commande `fetch`, `pull`, `push` ou pour les références aux branches externes `remote2/ma_branche`
+
+</div>
index 36548b1..4a671fe 100644 (file)
@@ -6,10 +6,10 @@ Zones, DAG-Hash, Pull, Rebase
 Workflow
 Git webui
 Git daemon (+ Live coding entre le .git local et le .git distant)
-Multiples remotes :
-Synchronisation de dépôts entre des plate-formes différentes
-Partage de code non-poussé sur le central avec un collègue
-Merge de dépôts
+Multiples remotes : **TP**
+Synchronisation de dépôts entre des plate-formes différentes
+Partage de code non-poussé sur le central avec un collègue
+Merge de dépôts
 Calcul des Hash :
 - déplacer un fichier ne prend pas de place
 - ajouter un nouveau fichier identique ne prend pas de place
@@ -24,8 +24,9 @@ Astuces :
 - autosetuprebase
 - autosquash
 - rerere Reuse Recorded Resolution
-- Gestion des binaires : diff+ gros fichiers
-Tâches d'admin :
+- Gestion des binaires : diff+ gros fichiers **DEMO**
+Tâches non courantes :
+- bisect **DEMO**
 - repo cherry-pick
 - git svn + svn2git
 Plate-formes :