Git
From Zanecorpwiki
I haven't had the chance to use git yet (except to type out what I was told), but Charles just walked me through an interesting tutorial on how git allows one to separate "the code narrative" from the minutia of branch history.
E.g., if we have a master branch with versions 1 and 2. Dev branch then breaks at 2 and commits revisions 2a and 2b. In the meantime, a version 3 is committed on master. By 'rebasing' the development branch, we can actually forget about the branch altogether and we end up with a "code narrative" that read: 1-2-2a-2b-3.
The idea is that it's not the time element that we care about it, it's the code progression. It cleans up the code history for developers without the loss of information by ignoring the temporal dimension. The effective code history is really 1-2-2a-2b-3 and the timing of all that and the fact that branches were made turns out to be "functionally" irrelevant.


