Modify

Opened 14 years ago

Closed 14 years ago

Last modified 6 years ago

#5160 closed defect (fixed)

ChangesetDataSet ignores several versions of object

Reported by: Upliner Owned by: team
Priority: normal Milestone:
Component: Plugin reverter Version:
Keywords: Cc:

Description (last modified by GerdP)

Changesets in OSM are not atomic. It means that several versions of same object may be present in one changeset. Nevertheless, ChangesetDataSet class ignores this fact and overwrites old versions by subsequent ones.
It leads to incorrect reversion of this kind of changesets by reverter.

Attachments (0)

Change History (4)

comment:1 by Upliner, 14 years ago

What will be better here: try to fix changeset management system in core or copy all necessary code to reverter plugin and fix this issue there?

comment:2 by Upliner, 14 years ago

Resolution: fixed
Status: newclosed

reverter bug was fixed in [o23273] by copying related code. If there will be some patches to the core, I'll reopen this ticket.

comment:3 by GerdP, 6 years ago

Description: modified (diff)

I try to understand the code in reverter.corehacks.ChangesetDataSet.put().
If I got that right the comment

            // Save only latest versions of primitives for reverter

should be changed to

            // Save only earliest version of primitive for reverter

or maybe

            // Save only lowest version of primitive for reverter

Did you really see changeset where the changes are not sorted by version? The code seems to handle the case that a cs contains data out of order like
...
modify node 123 to version 2
...
create node 123 (to version 1)
...

comment:4 by Don-vip, 6 years ago

Component: CorePlugin reverter

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.