L’idéal est de disposer d’un dossier distant, sur lequel on peut travailler à plusieurs. Sinon, il est toujours possible de simuler cette configuration sur une même machine en ouvrant le même fichier texte depuis deux instances de Bloc-Notes (ou tout autre éditeur).
Soit un fichier test_compter.txt
(disponible
ici) dans lequel il y a au départ :
dev 1
1
2
dev 2
1
2
dev 3
1
2
...
tous
1
2
On veut simplement continuer chaque liste de nombres, en enregistrant entre chaque ajout de ligne. Les développeurs d’une même équipe travaillent sur le même fichier.
lecteur distant -----------+
|
+-----------------------+
| |<---- dev 1 lecture/écriture
| test_compter.txt |
| |<---- dev 2 lecture/écriture
+-----------------------+-
Utiliser bloc-notes (Win+R puis notepad)
Exemple pour le développeur numéro 2 :
Le but est d’obtenir :
dev 1
1
2
3
4
5
dev 2
1
2
3
4
5
dev 3
1
2
3
4
5
...
tous
1
2
3
4
5
Une fois que vous avez fini, chaque développeur ferme le fichier et l’ouvre à nouveau pour constater le résultat.
Après un petit moment de concertation au sein de l’équipe pour élaborer une stratégie, il est possible de retenter cette expérience.
Il est aussi intéressant de retenter l’expérience en utilisant Notepad++ plutôt que Bloc-Notes.
Ça ne fonctionne tout simplement pas.
On peut utiliser différentes méthodes pour marquer un fichier comme « Vérrouillé pour modifications ».
C’est assez efficace mais cela ralentit le travail en équipe si un fichier est verrouillé pour peu ou même rien : il faut donc que l’équipe communique bien.
Cette activité part d’un travail en équipe, mais même si on travaille seul, le versionning reste très intéressant.
Même si, dans un moment intense de création de code, vous êtes parti faire un tour au réfrigérateur et que votre chat est venu ronronner sur votre clavier, il peut avoir :
vous garderez la maîtrise de votre code.
Les systèmes de versionning propose toujours une liste des modifications effectuées depuis le moment où le projet a été rentré dans le dépôt. Cela peut servir à :
À nouveau, l’idéal serait de disposer d’un dossier distant, mais on peut simuler la configuration :
src
(pseudo-distant) vers src1
et src2
(les deux pseudo-locaux, un pour
chaque développeur fictif (ou réel)).Quelques connaissances basiques sur la manipulation de systèmes de type
UNIX sont nécessaires, ainsi que quelques
sous-commandes de git
:
cd chemin
(les partages Windows sont accessibles avec par
exemple //xxx.xxx.xxx.xxx/reste/du/chemin/
, git bash here
sur le dossier
distant peut aider),mkdir chemin
,mv src dest
,rmdir chemin
,rm chemin
,git init
pour transformer le répertoire courant en dépot,git config user.name "mon nom"
pour configurer son nom,echo texte >> fichier
pour écrire dans un fichier,git add fichier
pour préparer les modifications d’un fichier au commit,git commit -m "message"
pour commiter,git clone adresse chemin/du/clone
pour cloner un dépôt,git push origin master
pour pousser vers le dépôt origin
les derniers
commits de la branche master
,git config --bool core.bare true
pour forcer un dépôt à être bare,git fetch origin
pour récupérer les objets du dépôt origin
,git merge origin/master
pour incorporer les changements du dépôt origin
(une
fois que ses objets ont été récupérés).Chaque ligne correspond grossièrement à une commande.
src_nom_du_dev
.git init
dedans.src
, puispush
ne doit pas avoir de
fichiers, mais uniquement posséder l’histoire.src_nom_du_dev
en dépôt bare..git
qu’il contient à côté du src_nom_du_dev
tout en le
renommant en src_nom_du_dev.git
.src_nom_du_dev
, c’est son contenu qui gênait.src_nom_du_dev.git
à être un dépôt bare.push
.Les trois premiers à avoir fini l’activité personnelle ci-dessus se mettent en équipe. Idem pour les trois suivants, etc…
On reprend la première activité de cette page, mais cette fois-ci en utilisant un outil adéquat. Le chef d’équipe initialise un dépôt distant accessible à l’équipe, contenant le fichier sur lequel travailler, puis les développeurs comptent dans leur section et dans la section commune, en commitant et en poussant à chaque fois qu’une ligne est modifiée.
Attention : Une étape supplémentaire sera parfois nécessaire avant de pousser. En effet, un de vos collaborateur aura peut-être modifié le dépôt avant vous (et c’est bien le but du travail en équipe). Il faudra dans ce cas :
Remarques :
dev 1
1
2
3 dev 1
4 dev 1
dev 2
1
2
3 dev 2
4 dev 2
dev 3
1
2
3 dev 3
4 dev 3
...
tous
1
2
3 dev 1
4 dev 3
5 dev 2
Où apparaissent les conflits ? Où n’apparaissent-ils pas ?
Il est possible d’organiser l’équipe en y choisissant un ou plusieurs mainteneurs. Voir la présentation sur Github.