Menu Team > Repository > Repository Browser
Clic droit sur la branche options locale et choisir "Checkout Revision...".
Menu Team > Branch/Tag > Merge Revision...
Tapez "master" dans le champ "Revision" ou bien clic sur "Select" et clic sur la branche master.
Clic sur "Merge"
S'il n'y a pas conflits entre les codes des branches master et options, le merge est terminé.
S'il y a des conflits que Git ne sait pas résoudre, vous allez devoir les résoudre.
Git affiche une fenêtre vous disant qu'il y a des conflits :
Clic sur Resolve.
3 fenêtres s'affichent alors :
Les codes qui posent problème sont mis en évidence en rouge :
Pour chaque conflit, vous pouvez alors accepter un des codes, accepter les 2 (pour les codes des 2 branches), accepter un des codes et passer au conflit suivant.
En bas, vous pouvez changer de fichier parmi les fichiers qui ont des conflits.
Quand vous avez terminé, il peut rester des conflits (ceux qui sont plus complexes à résoudre). Ces fichiers sont signalés en rouge dans l'onglet des projets à gauche.
Si vous ouvrez un de ces fichiers, le code qui pose problème est entouré par des lignes spéciales (la ligne de début commence par "<<<<<<< HEAD" et la ligne de fin commence par ">>>>>>>". Il vous reste à écrire le bon code pour que votre projet fonctionne à nouveau.
Remarque : vous pouvez voir les commandes Git lancées et les messages affichés par ces commandes dans la fenêtre "Output" du bas. Par exemple, "git merge --ff master".
Le résultat du traitement des conflits pour enregistrerMouvement :
public String enregistrerMouvement() { try { if (typeMouvement.equals("ajout")) { gestionnaireCompte.deposer(compte, montant); } else { try { gestionnaireCompte.retirer(compte, montant); } catch (EJBTransactionRolledbackException ex) { // Cas d'un solde insuffisant dans compte Util.messageErreur(ex.getMessage(), ex.getMessage(), "form:montant"); return null; // rester sur la même page } } // Le mouvement a bien été enregistré Util.addFlashInfoMessage("Mouvement enregistré sur compte de " + compte.getNom()); return "listeComptes?faces-redirect=true"; } catch (EJBException ex) { // La stratégie optimiste a échoué ; conflit avec un autre utilisateur Throwable cause = ex.getCause(); if (cause != null) { if (cause instanceof OptimisticLockException) { Util.messageErreur("Le compte de " + compte.getNom() + " a été modifié ou supprimé par un autre utilisateur !"); } else { // ou bien afficher le message de ex... Util.messageErreur(cause.getMessage()); } } return null; // rester sur la même page } }