Transition To Git¶
We may consider a transition from SVN to Git for revision control.
- Reduce barriers to new contributors (currently work is spread out among multiple repositories hosted by multiple sources with differing authentication systems, etc)
- Reduce wasted time in development (git is very fast)
- Encourage branch-based development
- Working with Mac bundles (e.g. Max externs, OmniGraffle files, etc.) is very easy, and we don't have to zip them!)
- No GUI apps on the Mac that are close to Versions or Cornerstone for SVN (Windows has good support include Tortoise Git) -- though TextMate's git bundle is as good as its svn bundle (which is quite good).
- Nobody likes change.
- How do handle rev numbers? http://wincent.com/a/about/wincent/weblog/archives/2007/07/build_numbers_i.php and http://www.question-defense.com/2009/03/13/software-revision-numbers-with-git-tag-and-git-describe/ describe the problem -- lots of tagging seems like a good idea -- it might be we have lots of builds and end up with things like 0.5.199 or something.
Git seems to be a pain in terms of pulling branches and tags over. It gives the appearance of being all automatic, but it's not -- the automatic stuff is all wrong. To do it right, we need to do it the same way that this ruby script does it (don't try getting it as a gem -- that doesn't seem to work either).
That said, it appears that Git will make it possible to sanely merge our repositories. See this:
- http://theappleblog.com/2009/03/10/using-git-with-os-x-6-tools-to-get-you-up-and-running/ -- a good intro article on getting set up (forwarded by Pascal)
- If we use github, http://github.com/drnic/github-tmbundle/tree/master
- Git over SVN @ http://google-opensource.blogspot.com/2008/05/develop-with-git-on-google-code-project.html
- Nice screencast about GitHub: http://www.pragprog.com/screencasts/v-scgithub/insider-guide-to-github
Tips and Tricks¶
- change a commit you just made to fix any problems (including the commit message)! http://stackoverflow.com/questions/179123/how-do-i-edit-an-incorrect-commit-message-in-git
- setup ignore file so that things like xcode temp files are cluttering your git status dumps. http://groups.google.com/group/peepcode/browse_thread/thread/fe6f9c1fc9d6e725