GITLAB iLM - Institut Lumière Matière

Update Home authored by Claire MOUTON's avatar Claire MOUTON
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
## Pré-requis # Pré-requis
* Notions de gestionnaire de versions (CVS, SVN, Git) souhaitables * Notions de gestionnaire de versions (CVS, SVN, Git) souhaitables
* Un ordinateur - peu importe l'OS - disposant de : * Un ordinateur - peu importe l'OS - disposant de :
...@@ -16,16 +16,16 @@ ...@@ -16,16 +16,16 @@
## Exercices # Exercices
### Matériel ## Matériel
[waf-c-example.tar.gz](uploads/5695cf1fc22675132848ff12963e816c/waf-c-example.tar.gz) par Maude Le Jeune (CNRS/IN2P3/APC) [waf-c-example.tar.gz](uploads/5695cf1fc22675132848ff12963e816c/waf-c-example.tar.gz) par Maude Le Jeune (CNRS/IN2P3/APC)
### En solo ## En solo
#### Configuration ### Configuration
* télécharger et décompresser `waf-c-example.tar.gz` * télécharger et décompresser `waf-c-example.tar.gz`
* entrer dans le répertoire `waf-c-example` * entrer dans le répertoire `waf-c-example`
* copier le fichier `data/.gitconfig` vers votre home directory * copier le fichier `data/.gitconfig` vers votre home directory
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
**Notions** : aliases, whitespaces **Notions** : aliases, whitespaces
#### Création du dépôt ### Création du dépôt
* initialiser le dépôt git (`git init`) * initialiser le dépôt git (`git init`)
* visualiser les changements (`git status`) * visualiser les changements (`git status`)
* ajouter l'ensemble des fichiers du projet, *sauf* le répertoire data (`git add|mv|rm`) * ajouter l'ensemble des fichiers du projet, *sauf* le répertoire data (`git add|mv|rm`)
...@@ -49,12 +49,12 @@ ...@@ -49,12 +49,12 @@
**Notions** : index **Notions** : index
#### Interlude optionnel, pour ceux qui souhaitent compiler et exécuter le code des TP ### Interlude optionnel, pour ceux qui souhaitent compiler et exécuter le code des TP
`./waf configure build` `./waf configure build`
`LD_LIBRARY_PATH=./__build__/liba:./__build__/libb ./__build__/app/app` `LD_LIBRARY_PATH=./__build__/liba:./__build__/libb ./__build__/app/app`
#### On code ### On code
* vérifier qu'aucune fonction `liba_byebye()` existe (`git grep`) * vérifier qu'aucune fonction `liba_byebye()` existe (`git grep`)
* ajouter une fonction `liba_byebye()` à la liba, qui sera appelée à la fin de `app.c` * ajouter une fonction `liba_byebye()` à la liba, qui sera appelée à la fin de `app.c`
* visualiser les modifications (`git diff`) * visualiser les modifications (`git diff`)
...@@ -64,17 +64,17 @@ ...@@ -64,17 +64,17 @@
**Notions** : revisions **Notions** : revisions
#### On s'est trompé ### On s'est trompé
En fait, on préfère nommer `liba_goodbye` la fonction `liba_byebye`. En fait, on préfère nommer `liba_goodbye` la fonction `liba_byebye`.
* remettre le dépôt à son état précédent juste avant le commit (`git reset HEAD^`) * remettre le dépôt à son état précédent juste avant le commit (`git reset HEAD^`)
* rechercher les occurrences de la fonction `liba_byebye()` et la renommer `liba_goodbye()` * rechercher les occurrences de la fonction `liba_byebye()` et la renommer `liba_goodbye()`
* enregistrer les modifications (`git commit`) * enregistrer les modifications (`git commit`)
#### Se rétracter ### Se rétracter
Finalement, on préfère abandonner la nouvelle feature. Finalement, on préfère abandonner la nouvelle feature.
* annuler le dernier commit (`git revert`) * annuler le dernier commit (`git revert`)
#### Voyage dans le temps ### Voyage dans le temps
En plein milieu d'un développement, on souhaite aller vérifier du code dans une version antérieure. En plein milieu d'un développement, on souhaite aller vérifier du code dans une version antérieure.
* ajouter une fonction `libb_goodbye()` à la libb, qui sera appelée à la fin de `app.c` * ajouter une fonction `libb_goodbye()` à la libb, qui sera appelée à la fin de `app.c`
* cacher les modifications (`git stash`) * cacher les modifications (`git stash`)
...@@ -86,7 +86,7 @@ En plein milieu d'un développement, on souhaite aller vérifier du code dans un ...@@ -86,7 +86,7 @@ En plein milieu d'un développement, on souhaite aller vérifier du code dans un
* étiqueter la version courante (`git tag -a`) * étiqueter la version courante (`git tag -a`)
* vérifier que le tag a bien été pris en compte * vérifier que le tag a bien été pris en compte
#### Brancher ### Brancher
On commence une nouvelle feature, que l'on enregistrera finalement dans une nouvelle branche. On commence une nouvelle feature, que l'on enregistrera finalement dans une nouvelle branche.
* visualiser les branches existantes (`git branch`) * visualiser les branches existantes (`git branch`)
* ajouter une fonction `liba_greetings()` à la liba, qui sera appelée dans `app.c` * ajouter une fonction `liba_greetings()` à la liba, qui sera appelée dans `app.c`
...@@ -99,7 +99,7 @@ On crée une nouvelle feature planifiée. ...@@ -99,7 +99,7 @@ On crée une nouvelle feature planifiée.
* ajouter une fonction `libb_happy()` à la libb * ajouter une fonction `libb_happy()` à la libb
* enregistrer les modifications (`git commit`) * enregistrer les modifications (`git commit`)
#### Fusionner ### Fusionner
* revenir sur la branche *greetings*, ajouter une fonction `libb_how_are_you()` à la libb * revenir sur la branche *greetings*, ajouter une fonction `libb_how_are_you()` à la libb
* enregistrer les modifications (`git commit`) * enregistrer les modifications (`git commit`)
...@@ -109,7 +109,7 @@ On fusionne la nouvelle feature avec la branche maîtresse. ...@@ -109,7 +109,7 @@ On fusionne la nouvelle feature avec la branche maîtresse.
* appliquer les modifications de la branche *happy* * appliquer les modifications de la branche *happy*
* résoudre les conflits et enregistrer les modifications * résoudre les conflits et enregistrer les modifications
#### Détour ### Détour
L'historique (`git lo`) montre clairement l'existence d'une branche fusionnée (*happy*). Il eut été possible d'appliquer les modifications enregistrées dans la branche *happy* de sorte qu'il en résulte un historique linéraire (`git rebase`). L'historique (`git lo`) montre clairement l'existence d'une branche fusionnée (*happy*). Il eut été possible d'appliquer les modifications enregistrées dans la branche *happy* de sorte qu'il en résulte un historique linéraire (`git rebase`).
* vérifier d'être bien placé sur la branche *master* * vérifier d'être bien placé sur la branche *master*
* annuler le merge de la branche *happy* (`git reset --hard v0.1`) * annuler le merge de la branche *happy* (`git reset --hard v0.1`)
...@@ -121,7 +121,7 @@ L'historique (`git lo`) montre clairement l'existence d'une branche fusionnée ( ...@@ -121,7 +121,7 @@ L'historique (`git lo`) montre clairement l'existence d'une branche fusionnée (
* supprimer les branches *happy* et *greetings* (`git branch`) * supprimer les branches *happy* et *greetings* (`git branch`)
### Remote ## Remote
#### Partager son dépôt - GitHub ou GitLab ### Partager son dépôt - GitHub ou GitLab