Proposal for simple metadata implementation

Matt Mackall mpm at selenic.com
Wed Mar 4 11:26:56 CST 2009


On Wed, 2009-03-04 at 16:29 +0100, Jesper Nøhr wrote:
> Hi list,
> 
> 
> I've been considering a stupid-simple implementation of metadata in
> Mercurial. It can be done on an extension-level, and without
> wireprotocol implications (unless I'm horribly mistaken.)

As I've mentioned several times before, I am rabidly against supporting
arbitrary metadata.

We have had support in the storage format for arbitrary metadata for
over 3 years. It's used for rename and rename only.

But exposing it to the user is inviting a complete disaster. Precisely
because it's 'arbitrary', there are NO consistent, well-defined
semantics and everyone will expect/need different behavior than what we
provide. Not only do we need to define what happens at merge time (good
luck with that), but we need to define every other transition as well
(commit, copy, revert, backout, mq, etc.).

And what happens when people want/need to change historical properties?

This feature looks deceptively simple but is in fact hopelessly
complicated. Its complexity to benefit ratio is astronomical and people
are guaranteed to attempt to use it in all sorts of ill-advised ways
when simpler, better ways exist (see keywords).

If people want ad-hoc metadata, they should use an ad-hoc implementation
that they define.

-- 
http://selenic.com : development and support for Mercurial and Linux




More information about the Mercurial-devel mailing list