Il a fallu quelques permutations pour que meld fonctionne sous Windows pour moi. Voici mon fichier .gitconfig actuel :
[merge]
conflictstyle = diff3
tool = meld
[mergetool "meld"]
cmd = \"C:\\Program Files (x86)\\Meld\\Meld.exe\" --auto-merge \"$LOCAL\" \"$BASE\" \"$REMOTE\" --output \"$MERGED\"
Linux :
[merge]
conflictstyle = diff3
tool = meld
[mergetool "meld"]
cmd = meld --auto-merge $LOCAL $BASE $REMOTE --output=$MERGED --diff $BASE $LOCAL --diff $BASE $REMOTE
Je crois qu'ajouter conflictstyle = diff3
modifie le texte en ligne pour inclure le contenu de la BASE dans le fichier de sortie avant que meld ne l'atteigne, ce qui pourrait lui donner une longueur d'avance. Pas sûr.
Maintenant, puisque j'ai déjà noté que Meld supporte la fusion à trois, il existe une autre option. Lorsque le style de conflit git "diff3" est activé, Meld imprime "( ??)" sur la ligne montrant le contenu de BASE. source
Quelques fonctions de ligne de commande meld que j'aime beaucoup :
-
--auto-merge
fait un excellent travail en choisissant la bonne chose pour vous (ce n'est pas infaillible, mais je considère que le temps gagné vaut tous les risques).
-
Vous pouvez ajouter des fenêtres diff supplémentaires dans la même commande. Par exemple :
--diff $BASE $LOCAL --diff $BASE $REMOTE
ajoutera deux onglets supplémentaires avec les diffs des patchs locaux et entrants. Ceux-ci peuvent être très utiles pour voir séparément de la vue à trois voies pour voir les différences séparées de la base dans chaque branche. Je n'ai pas réussi à le faire fonctionner sous Windows.
-
Certaines versions de meld vous permettent d'étiqueter les onglets à l'aide des éléments suivants --label
. Ceci était plus important avant que git ne fixe les noms des fichiers passés à meld pour inclure local/base/remote.
-
L'ordre de --diff
peut affecter l'ordre des onglets. J'ai eu des problèmes dans certaines anciennes versions qui plaçaient les différences supplémentaires en premier, alors que la différence principale à trois voies est beaucoup plus fréquemment utilisée.