NSI (terminale) · Chapitre 10 · Exercice d'entraînement
Un conflit de fusion
Modularité, mise au point et tests · Travail collaboratif · niveau 2
Énoncé
Un conflit de fusion. Le dépôt Git d'un jeu contient un fichier score.py :
def bonus(points):
return points + 10
def malus(points):
return points - 5
Alice crée une branche bonus-double et y remplace la ligne return points + 10 par return points * 2, puis fait un commit. Pendant ce temps, Bob modifie sur la branche main la même ligne en return points + 20, ainsi que la fonction malus (return points - 3), et fait un commit. Alice, sur sa branche, lance ensuite git merge main. Git répond :
Auto-merging score.py
CONFLICT (content): Merge conflict in score.py
Automatic merge failed; fix conflicts and then commit the result.
- Pourquoi la modification de
malusa-t-elle été fusionnée sans difficulté, alors que celle debonusprovoque un conflit ? - Le fichier contient maintenant les lignes ci-dessous. Expliquer le rôle des trois marqueurs.
def bonus(points):
<<<<<<< HEAD
return points * 2
=======
return points + 20
>>>>>>> main
- Décrire les étapes de la résolution, jusqu'au commit.
- Après une fusion sans conflit, pourquoi faut-il quand même relancer les tests ?
Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.