Adloun

Le dossier du projet contient ces huit entrées

Exercice supplémentaire · niveau 2 · NSI (première), chapitre 11 — Conduire un projet · Versionner, outiller

Énoncé

Le dossier du projet contient ces huit entrées. Dire pour chacune si elle doit être versionnée, et pourquoi.


partie.py        __pycache__/     tests_regles.py   notes_eleves.csv
cle_api.txt      .DS_Store        demo.mp4 (180 Mo) README.md

Une des réponses appelle une précaution supplémentaire. Laquelle ?

Corrigé

EntréeRaison
`partie.py`ouic'est le projet
`tests_regles.py`ouiles tests font partie du projet, au même titre que le code
`README.md`ouiil dit comment lancer et tester
`__pycache__/`nonrégénéré automatiquement ; le versionner crée des conflits sur

des fichiers que personne n'a écrits</td></tr><tr style=""><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">.DS_Store</td><td style="text-align:center;padding:8px 12px;color:#34332D;vertical-align:top">non</td><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">fichier du système, sans rapport avec le projet</td></tr><tr style=""><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">demo.mp4</td><td style="text-align:center;padding:8px 12px;color:#34332D;vertical-align:top">non</td><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top"> Mo dans un dépôt de quelques kilo-octets, et impossible à fusionner</td></tr><tr style=""><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">notes_eleves.csv</td><td style="text-align:center;padding:8px 12px;color:#34332D;vertical-align:top">non</td><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">données personnelles : elles n'ont rien à faire dans un dépôt partagé</td></tr><tr style="border-bottom:1.5px solid #2E2C26"><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">cle_api.txt</td><td style="text-align:center;padding:8px 12px;color:#34332D;vertical-align:top"><strong>non</strong></td><td style="text-align:left;padding:8px 12px;color:#34332D;vertical-align:top">un secret ne se versionne jamais</td></tr></table></div>

Ces exclusions s'écrivent une fois pour toutes dans un fichier .gitignore, lequel, lui, se versionne :


__pycache__/
*.pyc
.DS_Store
*.mp4
notes_eleves.csv
cle_api.txt

La précaution supplémentaire concerne cle_api.txt. Si la clé a déjà été enregistrée une seule fois, l'ajouter au .gitignore ne suffit pas et la supprimer non plus : elle reste dans l'historique, et l'historique est justement ce qu'on partage. La seule réponse correcte est de considérer la clé comme compromise et d'en demander une nouvelle.

La règle générale, et elle vaut au-delà de git : tout ce qui entre dans un historique partagé doit être considéré comme public et définitif. On ne retire pas une information d'un dépôt ; on change le secret.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.