2. Conceptual Differences
If you’r not distributed, you’r not worth it
If you won’t let me work offline, you’r not worth it
If you give me hard time merging changes, you’r not worth it
If you’r dead slow, you’r not worth it
Thursday, July 28, 11 2
3. Learning Git
(Subversion re-education)
What is a repository?
What is a commit?
What are branches?
What is commit-history?
What about merges?
Thursday, July 28, 11 3
7. A Branch
SVN
svn copy <repo-to-branch> <branch-name>
Git
git branch <branch-name>
Thursday, July 28, 11 7
8. Commit History
SVN
One-way (revision number increments)
Unchangable
Very Slow
Git
Merges (based on hashcodes)
Changeable, Squashable, Splittable, Reshapable
Extremely Fast
Thursday, July 28, 11 8
9. A Merge (conflict resolution)
SVN
Simple Stupid merge (based on your changes and my changes)
Git
Multi-Strategy, Intelligent merge (octopus, resolve, recursive, subtree, ours)
Rebase (and get rid of dumb merge-commit)
Thursday, July 28, 11 9
10. Where to go
http://gitref.org/
http://progit.org/book/
http://code.google.com/p/gerrit/
Thursday, July 28, 11 10