I like your point about separating the "Wow" from the object. I finished tagging all my MP3 files a while back, but I did it using MusicMatch, which makes tags that don't play nicely with the rest of the world. Artist, Album, Art work well, but Preferences don't. It also looks like no one with programming skills has had this particular itch, so I'll have to roll my own solution (Python + libid3).

My point it, there is stuff that belongs in the ID3 tag (the artist, album, title), and stuff that probably shouldn't (play count, preferences, maybe the album art). I really don't want 3 bits changing in a 10 MB file every time I play an MP3, triggering an incremental backup. That stuff should be in a separate file, or better yet, a database. That stuff is the WOW for MP3s, or, to use another term, play count and preferences are orthogonal to the music. When I want one, I usually don't want the other, and they should be separate.

Maybe this is why MS Office's internal versioning is so annoying to me. We use track changes all the time, but we end up copying the whole file (XXX_Proposal_v03_JW.doc) and emailing that around. Maybe the new XML format will be something that will look attractive in CVS.

BTW, I hate revision history in code files. Please leave that stuff in the CVS system, where it belongs!