A blog by Gary Bernhardt, Creator & Destroyer of Software

From Twitter: Version Control

25 Feb 2009

This blog has been quiet lately, due at least partly to Twitter. In an effort to get it going again, I'd like to start posting some summaries of my Twitter output. This will not be a daily Twitter bridge or anything like that. These are hand-selected from my entire tweet history. This first batch is on version control.

All links have been inserted after the fact, but everything else remains unchanged and in roughly chronological order. Indented entries are continuations of the thoughts in their parents.

For more of my ranting, you can follow me on Twitter.

  • To everyone who lost power due to the storm: you are now advocates of distributed version control and distributed ticketing. ;)
  • Recommending git as an intro to DSCM is like recommending C++ as an intro to OO. Just thought I'd throw that out there...
    • Good OO can be done in C++, but it takes a lot of learning and is prone to error. The same goes for DSCM and Git. ;)
  • The way most people use version control is downright offensive. Trailing whitespace changes in diffs? Seriously? Grow some discipline.
  • Workflow using patch queues: Spike a feature (patch 1), then replace the spiked classes with TDDed ones (patches 2..n), then fold patches.
  • That workflow gives you: easy spike-to-TDD transition; everything nicely versioned; a single changeset at the end; no history rewriting.
  • Git was designed by insane space aliens. Whether this is a good or bad thing is a personal preference.
  • One day I will write an editor-VCS that stores all files as the list of vim commands originally used to create them. <0.95 ;)>
  • The funny thing about rebase, patch queues, and multiple heads: Once you truly understand one of them, you understand all of them.
  • Using a DVCS has made me worry a lot about repo size, which I shouldn't have to worry about. I never would've expected this problem.
  • Wish list: Fancy VCS: When I refactor a test, automatically check that the new one would've failed at the point where I originally TDDed it.
  • "This is more complex than OpenGL!" - @jleedev, about five words into my explanation of Mercurial patch queues.