On Feb 23, 2009, at 8:45 PM, Chris Anderson wrote:

Would it be overly difficult to just add in the ability to keep a full rev
history based on a config setting?

This would be a pretty big change. As Antony says, once you go down
that path a little, you end up at something that is not really much
like Couch.

There's yet to be a really clear reference for how to do
application-versioned documents in CouchDB. Hopefully we'll address
the topic in the book, but we haven't gotten that far yet.

The way I see it, the salient options are:

A) leave it as _rev and answer the versioning question every week forever
B) rename it to _mvcc or _lock or _token or something else that
doesn't confuse people

The main drawback of B is that when we start renaming _rev, someone
else comes along and tries to take the opportunity to change _id, or
otherwise change the whole system. If we can stick to just renaming to
something clearer, I'm happy to go ahead with this.

I forgot when I posted this, we still need the ability to get conflict revisions, which also uses the ?rev=... syntax. Maybe we should change that use from ?rev... to ?conflict=...., since those rev ids show up in the _conflicts doc member.

I think if we change from _rev to something else, _cc for concurrency control is good. I'm not sure this is necessary.

Maybe we should only allow the ability to getting old revisions (? disk_rev=...) with a setting in the ini, defaulting it off. That discourages it's use as general purpose mechanism, but is easy to turn on if you really need it.


-Damien

Reply via email to