Roundup -> Trac

Matt Mackall mpm at selenic.com
Tue Mar 15 16:44:51 CDT 2011


On Tue, 2011-03-15 at 21:50 +0100, Christian Boos wrote:
> We need backward incompatible changes as we go forward and try to 
> improve the current data model.

Yes yes, every single software project in the world has this problem:
how does new software work with old data? Your project isn't special.
There are a bunch of ways to do this, in order of decreasing awfulness:

1) force a flag day (upgrade software and data simultaneously)
2) allow reading/writing to old data, allow data migration at user's
pace
3) extend old data in a way that is compatible with old software

For some reason, projects backed by databases seem to always reach for
"flag day", either because they're lazy or don't know any better or
imagine that it's ok because every DB-backed project is automatically
extra-important and thus worthy of extra user headaches. 

Just about everyone else has figured out that flag days are not good
engineering practice.

The sad thing is that databases are more or less -the ultimate
extensible file format-, so it's generally much easier to do (3) than it
is for other projects.

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list