[OSM-dev] 0.6 API clarifications and corrections

Christopher Schmidt crschmidt at metacarta.com
Thu May 15 12:18:30 BST 2008


On Thu, May 15, 2008 at 11:42:03AM +0200, bvh wrote:
> On Thu, May 15, 2008 at 11:31:13AM +0200, Frederik Ramm wrote:
> > >> Under the current plan, yes. We didn't think it was reasonable to
> > >> push that assumption down to the clients thought.
> > > Why would that be unreasonable? In what (futuristic) scenario would
> > > version numbers not increment monotonically one by one?
> > In the current scenario, you are basically not allowed to upload a new 
> > version of an object if you haven't got the previous version.
> > 
> > This is unnecessarily strict.
> > 
> > For example, two people could download version 1 of a node; one adds the 
> > foo tag, another adds the bar tag, both upload. With the plans for API 
> > 0.6, one of the uploads will simply fail.
> > 
> > In theory, both uploads could be accepted without conflict, and we would 
> > then have one change that goes from v1 to v2, and one change that goes 
> > from v1 to v3.
> 
> But one of them will be accepted first and the other will later
> be judged as sufficiently different, right? So the actually history
> in the database will have two transitions, one from v1 to v2 and
> the other from v2 to v3.

Yes, but the client uploaded version="1", and the server handed back
version="3". The client couldn't assume that "current_version + 1 ->
new_version".

> > It is also possible to change the same object multiple times within the 
> > same changeset, so one single changeset might catapult the object 
> > version from 1 to 15.
> 
> Wouldn't it be better then to just throw away consecutive changes to
> the same object and only keep the last one within each diff?

This is about changeset serialization, not diffs. (I made the same
mistake.)

Regards,
-- 
Christopher Schmidt
MetaCarta




More information about the dev mailing list