← Retour au cours

A3 · Gestion de version : l'historique comme graphe

1A engineering (ECC Coding Week) · 60 min

Ouvrir les diapositivesPDF

Lab

Télécharger le lab (.zip)Ouvrir dans Colab

Nécessite Python 3.12 ou plus récent, Git et un terminal, pydantic.

Décompressez l'archive, puis dans ce dossier :

uv run python verify.py

Évaluation

Évaluation de sortie A3 : historique, diagnostic et récupération

Durée : 35 minutes, puis un défi oral de 3 à 5 minutes.

Le générateur du lab crée un dépôt Git jetable. Pour cette évaluation, n'exécutez jamais les commandes de récupération dans un autre dépôt.

Rendu

1. Modèle de l'état, A3.1

Dessinez les snapshots actuels, les relations parent, les références et les commits atteignables. Séparez les concepts généraux de l'implémentation Git par objets adressés par leur contenu. Vérifiez le graphe avec des commandes de plomberie.

2. Localisation du défaut, A3.2

Utilisez une requête d'historique reproductible et un test exécutable pour trouver le premier commit où le total devient faux. Soumettez la trace et expliquez pourquoi elle isole la frontière comportementale.

3. Récupération de l'état partagé, A3.3

Auditez la branche shared-work déplacée volontairement, son reflog et la référence collaborator-snapshot, puis récupérez le tip sous une nouvelle branche sans déplacer une référence existante. Prouvez que les deux fichiers de travail attendus restent atteignables. Indiquez quelle preuve dépend de la rétention du reflog local et laquelle vient de la référence du collaborateur.

Défi oral

L'enseignant déplace une référence, révèle une référence de collaborateur ou modifie l'hypothèse de rétention du reflog. Mettez à jour l'analyse d'atteignabilité et démontrez la récupération sûre dans le dépôt jetable.

Références