Rather late in the day compared to many people, I've recently been taking steps toward joining the DVCS generation.
For a year or two I've been an occasional light user of bzr
, either to hold temporary branches off my main SVN repository (e.g. pre-git
, by dint of playing with test repositories and examining the output of git fast-
until I actually understood how its data structure fitted together and could work out everything else by reasoning about that. Having done so, I immediately migrated all my bzr
repositories to git
, because that kind of understanding is very valuable to me and bzr
's documentation seems to place almost no emphasis on imparting it.
At the weekend, though, I actually did find the document which explains bzr
's data structure –git
. As, I discovered after a brief browse on another website, is the data structure of Mercurial. The user interfaces can vary, but all three of these DVCSes have an essentially similar underlying data model.
And, curiously, a thing that struck me about this model is that it's surprisingly similar to something I already know about: Usenet.