Although OpenStreetMap has its full history available for download, there is neither a easy-to-use tool for tracking changes nor for undoing edits. However, there are diffs, augmented diffs, changesets, history, old object versions, the full history planet file, redactions and a lot more notions, tools, and file formats.
We start with a walk through the details of the OpenStreetMap data model. The data model has some implications how to structure information about changes. For example, geometry changes often do not correspond to version changes in the affected objects. On the other hand, relations often deliver more change data than is interesting to see. Whole changesets may or may not be the right level of detail.
We conclude the first part with an approach how to vsualize changes in a almost always concise way.
The second part is devoted to a high level comparison of the various file formats concerned with change representation. We use as criteria the suitability to various use cases and explain the necessary extra data keeping.
In the third part, the corner cases for tool development are explained. The aims of potential tools are patching an exisiting replication database as well as programming an undo tool. To get in addition the perspective of change visualization, the code behind the tool that has been presented in the first part is reviewed.