Le 19 septembre 2014 17:46, Pieren <pier...@gmail.com> a écrit : > 2014-09-18 21:37 GMT+02:00 <didier2...@free.fr>: > > > pour les revert: > > si on veut faire un revert de plusieurs changesets, on commence par > faire le revert du plus récent > > Attention, même en faisant le revert dans l'ordre inverse, on ne > retrouvera pas les données antécédentes sans conflits. En effet, si le > vandale a créé deux versions d'un élément (par ex, v1 -> v2 puis v2 -> > v3), le premier revert crée une nouvelle version en revenant à T-1 (v3 > -> v4 avec les attributs de v2). Mais quand on tente d'annuler le > deuxième changeset (le premier chronologiquement), JOSM va avoir un > conflit puisque la version de l'élément a évolué depuis (le changeset > parle d'un v1 -> v2 qui n'est plus v2 mais v4 maintenant). > Il faudrait en fait que le reverter prenne en charge des groupes de > changesets au lieu de les faire un par un. > > Pour compléter; c'est plus compliqué que ça car un même changeset peut contenir plusieurs versions successives d'un objet.
Et lors d'une résolution de conflits entre deux changesets, ils vont chacun créer des versions sur des objets séparés mais entremêlés (et assez souvent pour les résoudre on est amené à modifier un même objet une seconde fois dans le changeset). L'autre cas c'est le changeset resté ouvert pour plusieurs modifs en séries. La granularité n'est donc pas le changeset mais uniquement objet par objet avec des version séparées; réparties dans un nombre variable de changesets. Noter aussi qu'il peut y avoir pluseurs changesets ouverts simultanément par le même utilisateur et quel leurs modifs peuvent aussi s'entre mêler (amais avec des conflits de versions possibles entre eux et à résoudre pour chacun). Bref, faire un revert d'un ou plusieurs changesets c'est aussi compliqué! Il faut lister toutes les versions de chaque objet modifié dans le(s) changet(s) et repérer les versions initiales. Si on veut éviter de compliquer avec des listes d'objets compliquées, on a intéret à faire les reverts non pas en groupant selon leur changset d'origine mais selon leur dépendances (objets liés : noeuds référencés par ways ou relations, ways et relations référencées par relations) et travailler sur ces jeux assez petits pour pouvoir traiter ces petits groupes séparément : ceci fait on peut alors les déversionner étape par étape en parcourant les versions en sens inverse
_______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-fr