Sorry - I want my version control system to be really, really good at being a version control system, not at being a system to train other software developers.<p>If you're an experienced developer, you should be able to pick up the static source code and figure it out how it was engineered. If you're not as experienced, you will learn through doing (not reading) and perhaps by working side-by-side with a more experienced developer.
I'm skeptical.<p>People have a limited cognitive capacity.<p>There really may be some learnings worth extracting from a long-term source repository, but I think the cognitive overhead of looking at years of old commits competes with being able to focus on the code in front of you.
I always wanted more dynamic commenting which some of the fisheye/github tools already do. For instance being able to have a discussion about a line of code. Not necessarily a code review, but more like explaining the code with pro/con discussion if necessary. It is a bit troublesome to implement you always get snapshots of code, so how to track lines. Plasticscm seemed interesting, <a href="http://www.plasticscm.com/gallery.aspx" rel="nofollow">http://www.plasticscm.com/gallery.aspx</a>, but I think they are aiming at the Microsoft crowd, git is pretty firmly entrenched otherwise. Looks like they tried to learn lessons from git and it's success.
Can't help but feel this would produce an epicly poor signal to noise ratio.... No one cares about someone's keystrokes as thats attacking the wrong level in information hierarchy. Overall seems like a self indulgent academic effort (nothing wrong with that per-se but the real world doesn't need it). It's interesting to compare relative interest in this to Light table mentioned a few days ago
To me a playback system does not provide anything useful. Never have i found it insightful watching people write code. In fact, most of the insightful stuff comes not from the code itself, but the design and brainstorming process that went on before even a single line was written.
What I want: an undo graph, like vim's undo tree with merges. I want it visualized and browsable, maybe with real time sharing. It needs powerful git-like tools for squash, rebase, etc so you can make neat changesets to publish for review.