Anthony Scopatz

I think, therefore I amino acid.

inSCIght Episode 23: git-svn, one tool to rule them all!

This was originally published at inSCIght.

Listen to the podcast

On episode 23, we discuss the ever important subject of version control.  We talk about distributed vs centralized version control systems through two popular implementation: git and subversion (svn).  More specifically, we go over how to partially or fully convert existing repositories to the more modern distributed paradigm.  While you listen to this episode, it may be helpful to keep the following figure in your mind.

Our committed hosts tonight include:

  • Milad Fatenejad
  • Brad King (special guest)
  • Jeff Ramnani
  • Anthony Scopatz (moderator)

This week we have a lone special guest.

Brad King joined Kitware in June 2000 and became a founding member of the Software Process group focusing on methods and tools for open source software (OSS) development. While working for Kitware he simultaneously conducted graduate research at Rensselaer Polytechnic Institute. His research focused on 3D modeling and change detection in real-world scenes, using both range and intensity sensors. Dr. King received his Ph.D. in Computer Science from Rensselaer in December 2008.

Show Links:

  1. Pro Git - Provides good coverage of how to use git. Also provides visual aids for those new to git or version control in general.  The author, Scott Chacon, works at Github.
  2. Linus Torvalds Google Techtalk on git
  3. Intro to DVCS Illustrated - A helpful resource when learning DVCS.
  4. svn2git - Program which helps with my subversion to git migrations. It automates some tasks to make your repository cleaner after a git-svn import.  For example, it will create proper git branches and tags from your subversion equivalents.


From Brad King - The episode includes a brief monologue on the nature of git’s storage model claiming that it holds differences between versions.  In fact an important distinction of git from other DVCS tools is that its object model holds a complete representation of the content at every version. As an implementation detail it does “pack” objects efficiently by storing deltas, but this is not visible to the user.  Any user-level presentation of a “diff” is constructed on the fly.