Adloun

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 malus a-t-elle été fusionnée sans difficulté, alors que celle de bonus provoque 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.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre