I just attended Edward Thomson’s talk “Deep Dive into Git”.
I find version control and especially git’s approach to version control especially interesting because because it is such a good examples of a hacker power tool that would add tremendous value if applied to other trades, like contract drafting.
Edward works on Microsoft’s reimplementation of git libgit2. Apparently the original git has certain issues when used as a library (especially in Visual Studio)
git is essentially distributed and branching is cheap and easy, which Edward demonstrated convincingly. But the higlight of the talk for me was Edward’s explanation of the dreaded “rebase” command. Edward succeeded where a others have failed misrably in explaning rebase in a way that actually makes sense – at least to me. Instead of merging rebase generates a set of diffs between the most recent ancestor of your present branch and the ancestor. Theses diffs are then applied to the branch your are rebasing to. When I realised this image from the Atlassian git tutorial actually made sense to me.
Related to git but not Edwards talk I recently discovered git auto commit mode for Emacs. I don’t think this would work for code, but I plan to try it out for the prose writing I do in Emacs.
Full Disclosure: I am receiving a free GOTO ticket from the producers in exchange for blogging about the conference.