Académique Documents
Professionnel Documents
Culture Documents
Chapitre 2
Résoudre les conflits
Introduction
Parfois lorsque vous travaillez sur JOSM et que vous voulez envoyer sur le serveur (upload) les
modifications de la base liées à vos éditions, vous obtenez ce message inquiétant :
Il vous indique que l'envoi n'a pas fonctionné parce qu'un autre utilisateur a envoyé ses éditions qui
concernent certains des objets que vous avez également édités. Le message précise que vous avez
téléchargé la zone en premier donc vous possédez la version 1, mais le serveur a une version 2 plus
récente. Plus spécifiquement, le nœud 2 549 547 834 est la source du problème. C'est cet objet qui a été
modifié par quelqu'un d'autre entre le moment où vous l'avez téléchargé et le moment où vous avez voulu
envoyer vos modifications.
Cette boîte de dialogue est spécifique aux conflits dans JOSM. Dans ce logiciel, un conflit correspond à
une incapacité du serveur OSM à déterminer quelles éditions envoyées doivent être considérées pour
mettre à jour la base de données. Fondamentalement, le serveur OSM a reçu des éditions qui ont modifié
des objets identiques ou similaires et JOSM ne sait lesquelles doivent être choisies.
En effet, dans la mesure où vous travaillez sur une copie locale d'OSM sur votre ordinateur, d'autres
utilisateurs peuvent aussi récupérer, éditer et remonter des donnés vers le serveur OSM (upload)
concernant les mêmes objets OSM que vous. Vous n'avez pas la possession des objets sur lesquels vous
êtes en train de travailler : vous les partagez. Ainsi, lorsque des objets que l'autre utilisateur et vous même
avez envoyés sur le serveur principal à des moments différents, celui-ci ne sait pas quel envoi doit être
conservé et utilisé et vous informe donc sur ce conflit. JOSM est capable de résoudre seul certains
conflits, et parfois vous pourrez rencontrer un message d'erreur tel que celui-ci :
Ce message indique que JOSM a supprimé certains des objets de l'extrait téléchargé dans JOSM car ils ont depuis
été supprimés sur le serveur
Cela signifie que JOSM a décidé automatiquement que des objets de votre extrait local de données ne
seront pas envoyés sur le serveur principal parce qu'ils ont été supprimés par un autre utilisateur.
Cependant, pour certains conflits, il n'y a pas pour JOSM de décision simple à prendre et le logiciel laisse
alors à l'utilisateur le choix de prendre la meilleure décision. Ainsi, le conflit a besoin d'être résolu :
Ce message vous informe de la nécessité de regarder les conflits du Calque de données dans la boîte de dialogue
des Conflits.
Ce message vous fournit un avertissement sur le fait que vous allez probablement rencontrer des conflits avec vos
éditions. Si vous cliquez sur "Vérifier sur le serveur", vous allez être en mesure de corriger les erreurs d'édition que
le serveur va avoir mis en évidence .
Le conflit apparait alors dans la fenêtre latérale "Conflits" à droite au sein du panneau des fenêtres
latérales. Dans la barre d'outils verticale à gauche, l’icône permet d’afficher/désafficher cette fenêtre,
de même que le raccourci clavier SHIFT+ALT+C. Cette fenêtre liste les conflits existants, dont le nombre
total apparaît en haut dans la zone de titre de la boîte. Vous ne pouvez pas envoyer vos modifications
avant que cette liste ne soit vide.
Au passage de la souris sur la fenêtre, deux boutons s’affichent :
Avant de commencer à résoudre, il est intéressant de visualiser le nœud pour comprendre la raison du
conflit. Cliquer d’abord sur le conflit puis sur le bouton . Faites un clic droit sur le
conflit à résoudre, et cliquer sur "Zoomer sur conflit".
La carte dans JOSM va être centrée sur le nœud en conflit qui apparaît sélectionné en rouge. Vous pouvez
ainsi le voir et vous remémorer quand vous l’avez créé ou modifié. Cliquez ensuite sur le bouton
qui va ouvrir une fenêtre qui détaille votre conflit et permet d’effectuer sa résolution.
Le message d'erreur qui apparaît peut sembler compliqué, mais il est en fait assez simple. Vous saurez à
quel type de conflit vous êtes confronté grâce au symbole dans les onglets en haut :
● Propriétés : sur le serveur OSM, le nœud a une nouvelle version de ses coordonnées ou de son
état (supprimé/non supprimé).
● Attributs : sur le serveur OSM, le nœud a une nouvelle version de ses attributs (ajoutés, modifiés
ou supprimés).
● Nœuds : sur le serveur OSM, le nœud s’il y a des différences entre les deux listes de nœuds d’un
même chemin (way), par exemple une route. Cette possibilité n’existe que pour ce type d’objets
et seulement si vous avez préalablement cliqué sur "Synchroniser tout le jeu de données".
● Membres : sur le serveur OSM, le nœud s’il y a des différences entre les deux listes de membres
d'une relation.
La fenêtre des conflits présente seulement deux différentes éditions à la fois. Votre version, nommée "Ma
version", apparaît à gauche. La “Version du serveur” apparait à droite. Au centre la "Version fusionnée"
sera le résultat de la résolution. Lorsque le conflit concerne les propriétés, il est important d’avoir regardé
auparavant l’objet concerné afin de déterminer si ses coordonnées ou son état correspondent à la réalité.
Si votre version vous semble la meilleure, cliquez sur . Si vous pensez qu’au contraire, c’est celle
du serveur, cliquez sur . Lorsque vous avez cliqué, la version choisie apparait comme la version
fusionné et la couleur de fond passe du rouge ou vert, de mêtre que devant l’onglet, il y a désormais un
.
Lorsque les conflits sur les propriétés ont tous été résolus, cliquez sur le bouton s’il
n’est plus grisé. Les valeurs que vous avez choisies seront appliquées et la fenêtre se fermera. Le conflit
est résolu et disparait de la liste des conflits. Lorsque la liste est vide, il est possible d’envoyer les
modifications au serveur OSM. Si un autre onglet est marqué du symbole , il faut d’abord le résoudre.
Dans l'exemple ci-dessous, les deux versions ont un tag avec la clé "name". Cependant, les valeurs sont
différentes pour les deux versions de l'objet. La valeur de la première version est "Eglise Ste Thérèse", et
la version opposée possède la valeur "Eglise Sainte-Thérèse".
Vous devez maintenant décider quelle est la valeur que vous voulez conserver et celle que vous allez
rejeter. Dans le cas présent, "Eglise Sainte-Thérèse" respecte les règles des noms d’objets en cartographie,
alors que la version abrégée "Eglise Ste Thérèse" est incorrecte. La version de droite ("Version du
serveur") va ainsi être celle qui va être conservée en cliquant sur le bouton .
En cas d’erreur, sélectionner l’attribut à annuler dans le tableau central "Version fusionnée" et cliquer sur
le bouton .
Le deuxième attribut en conflit est d’un type différent : "Ma version" ajoute un attribut dont la clé n’existe
pas dans la "Version du serveur", qui apparait ainsi comme “<non défini>”. Il s’agit de déterminer si cet
attribut supplémentaire est pertinent. Si c’est le cas, cliquez sur , sinon cliquez sur . Dans
l’exemple ci-dessous, "Ma version" a été conservée.
Tous les attributs en conflit ont été résolus et la couleur de fond devient verte.
Lorsque les conflits sur les attributs ont tous été résolus, cliquez sur le bouton s’il
n’est plus grisé. Les valeurs que vous avez choisies seront appliquées et la fenêtre se fermera. Le conflit
est résolu et disparait de la liste des conflits. Lorsque la liste est vide, il est possible d’envoyer les
modifications au serveur OSM. Si un autre onglet est marqué du symbole , il faut d’abord le résoudre.
Comme expliqué plus haut, il est conseillé de regarder les nœuds affectés en les sélectionnant, puis en
faisant un clic droit pour pouvoir accéder à . Dans notre exemple, le conflit concerne
une section de route primaire de plusieurs dizaines de km de long, ce qui est un cas courant de création de
conflits de chemin. En effet, compte tenu de la longueur de l’objet, il est tout à fait possible qu’un autre
utilisateur l’ait édité en dehors de la zone téléchargée, comme montré dans l’exemple ci-dessous.
La zone téléchargée fait moins d’un km de large et comprend deux sections de routes primaires.
Ces sections de route primaire font en fait plusieurs dizaines de km de long.
Réglez d’abord tous les conflits de propriétés des nœuds comme indiqué plus haut, puis passez à l’objet
chemin, généralement en bas de la liste.
Le symbole est présent devant l'onglet “Nœuds en conflits”. Il y a trois tableaux affichés dans cette
fenêtre, de gauche à droite :
● “Ma version” : montre la liste des nœuds de la première version participant au conflit de l'objet. Il
s'agit habituellement de votre calque de données.
● “Version fusionnée” : montre la liste des nœuds fusionnés. Ce tableau est vide au départ. Plus
vous résolvez des conflits de nœuds, plus des nœuds vont apparaître dans ce tableau.
● “Version du serveur” : montre la liste des nœuds de la deuxième version participant au conflit de
l'objet. Ce sont habituellement les attributs de la version de l'objet actuellement enregistrée sur le
serveur OSM.
A la différence de la résolution des conflits de attributs (voir plus haut), l’ordre des nœuds dans le tableau
de la version fusionnée est important, car il conditionne l’ordre dans lequel les nœuds se relient les uns
aux autres dans l’objet chemin.
Il peut être difficile de voir la différence entre les différentes listes de nœuds des trois tableaux, en
particulier pour les chemins comprenant un grand nombre de nœuds. La fenêtre des conflits permet de
voir les différences en comparant deux des trois tableaux de nœuds ("Ma version", "Version fusionnée",
"Version du serveur") et montre les différences avec des fonds de couleur différents. Les couleurs ont la
signification suivante :
● indique que ce nœud du chemin n’engendre pas de conflit.
● indique que ce nœud du chemin existe dans les deux listes, mais à
une position différente dans l’ordre des nœuds.
● indique que ce nœud du chemin n’existe que dans une seule
version.
A partir de la liste déroulante, vous pouvez sélectionner quelles listes de nœud vont être comparées :
Procédure standard
Pour résoudre les conflits de chemin, la procédure standard comprend trois étapes :
● Choisissez les nœuds à conserver parmi les entre "Ma version" et "Version du serveur" et changez
l’ordre des nœuds si nécessaire. Des explications sont fournies plus bas.
● Figer la liste fusionnée qui en résulte en cliquant sur le bouton . Vous indiquez ainsi à
JOSM que la liste des conflits pour cet objet a été résolue.
● Appliquer la résolution.
Cliquez sur (ou si vous avez sélectionné tous les nœuds de la version du serveur) ou
sélectionnez d’abord tous les nœuds (avec la souris ou Ctrl-A) d’une des deux tables, à droite ou à gauche
(à gauche dans l’exemple).
Cliquez ensuite sur (ou si vous avez sélectionné tous les nœuds de la version du serveur)
pour que tous ces nœuds apparaissent dans la table de la version fusionnée au centre :
La liste des conflits des nœuds parait complexe mais est en fait relativement simple. Tout d’abord, les 8
premiers nœuds, en vert, ne pose pas de problème. Le 9ème nœud de "Ma version" est un nouveau nœud
créé dans la sessions d’édition en cours, comme le montre le fait que ce nœud n’a pas encore d'identifiant.
Ce nouveau nœud, qui s’insère entre les noeuds et , crée
de fait un décalage par rapport à la "Version du serveur" qui ne le comprend pas. De fait, l’ordre des
nœuds n’est plus le même et tous les nœuds qui suivent sont de couleur orange, à l’exception des
nouveaux nœuds : le nœud de la ligne 15 à gauche et de la ligne 14 à droite. Nous allons conserver tous
les nœuds communs aux deux versions, ainsi que les nouveaux créés dans chacune des deux versions.
Nous allons d’abord sélectionner les huit premiers nœuds, communs aux deux versions, par exemple à
gauche, et les placer dans le tableau de la “Version fusionnée” en cliquant sur .
Puis dans l’exemple, il convient de sélectionner le nouveau nœud de la ligne 9 à gauche et cliquez sur
pour le placer à la suite des autres dans la "Version fusionnée".
"Il convient ensuite de continuer de la même manière pour les nœuds suivants : 9 à 14 à droite, 15 à 22 à
gauche, etc. de sorte que tous les nœuds soient placés dans la "Version fusionnée" en prenant garde à bien
respecter leur ordre (par exemple ne pas mettre le nœud 12 avant le nœud 11 dans l’exemple ci-dessus).
En cas d'erreur, il est possible de sélectionner un nœud dans la "Version fusionnée" et de le déplacer avec
ou , ou bien le supprimer de cette liste avec .
Une fois cela fait, cliquez sur puis sur . Les valeurs que vous avez
choisies seront appliquées et la fenêtre sera fermée. Le conflit est résolu et disparait de la liste des
conflits. Lorsque la liste est vide, il est possible d’envoyer les modifications au serveur OSM.
Pour minimiser les chances de rencontrer des conflits ou en limiter le nombre, il est utile :
● d’éditer uniquement sur la zone que vous avez téléchargée. Assurez-vous de ne jamais éditer en
dehors de cette zone de téléchargement.
● d'envoyer les modifications régulièrement en cliquant sur . Afin d’éviter la multiplication des
groupes de modification (changesets) , veuillez configurer l’onglet "Groupe de modifications" de
la fenêtre d’envoi en décochant "Fermer le groupe après l’envoi". Envoyez les données et au
prochain envoi, configurez "Envoyer vers un groupe existant" comme montré ci-dessous :
● de mettre à jour les données régulièrement en allant dans le menu “Fichier” et cliquer sur
Résumé
Lorsque vous éditez dans JOSM, qui télécharge des extraits de la carte OSM, vous prenez le risque de
engendrer des conflits. Les conflits se produisent lorsqu'un même objet a été édité par deux personnes à
des moments proches. Ces conflits doivent être résolus avant de pouvoir envoyer les modifications de vos
éditions au serveur OSM. Ce chapitre a présenté une approche détaillée de la résolution des conflits dans
JOSM.