Successfully reported this slideshow.

Distributed Version Control Systems

3

Share

Loading in …3
×
1 of 49
1 of 49

Distributed Version Control Systems

3

Share

Download to read offline

On 19 February I held a presentation for my colleagues about distributed version control systems (DVCS). My main goal was to inform them on what I think is the next logical step in source control.

Also see http://vlent.nl/weblog/2010/02/25/distributed-version-control-systems-presentation

On 19 February I held a presentation for my colleagues about distributed version control systems (DVCS). My main goal was to inform them on what I think is the next logical step in source control.

Also see http://vlent.nl/weblog/2010/02/25/distributed-version-control-systems-presentation

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Distributed Version Control Systems

  1. 1. Distributed Version Control Systems A short introduction 19 February, 2010
  2. 2. Outline • Goals • What is DVCS anyway? • What are the disadvantages? • What are the advantages? • How do I interface with Subversion?
  3. 3. Goals • Inform about DVCS • Not trying to force a change!
  4. 4. DVCS in 5 minutes Flexible workflow
  5. 5. DVCS in 5 minutes Flexible workflow
  6. 6. DVCS in 5 minutes Flexible workflow
  7. 7. DVCS in 5 minutes Flexible workflow
  8. 8. DVCS in 5 minutes Flexible workflow dev prod
  9. 9. DVCS in 5 minutes • Complete local copy of the repository • Most common actions don’t need network • Private branches
  10. 10. DVCS in 5 minutes • Most popular: • Bazaar • Git • Mercurial
  11. 11. Disadvantages • More complex to learn/use • New or redefined terminology • No partial clones so one repo per project • Easier to crawl into a cave
  12. 12. Advantages • Local commits (easier to experiment) • FAST! • Cleaner working copy (no .svn dirs) • Working copy svn same size as full history • Code review local commits before push
  13. 13. Advantages • Cooperation without commits to central repo • Better merging, thus low barrier for branching • Commit before merge instead of merge before commit
  14. 14. Cooperation
  15. 15. Cooperation
  16. 16. Cooperation
  17. 17. Branching “trunk”
  18. 18. Branching “trunk” branch feature X
  19. 19. Branching “trunk” branch feature X
  20. 20. Branching “trunk” branch feature X
  21. 21. Branching “trunk” branch branch
  22. 22. Branching “trunk” branch branch
  23. 23. Branching “trunk” branch feature X
  24. 24. Branching release “trunk” branch branch bugfix
  25. 25. Branching “trunk” branch branch feature X
  26. 26. Merge before commit remote local update run tests; no errors
  27. 27. Merge before commit remote local update run tests; no errors write code run tests; no errors
  28. 28. Merge before commit remote local update run tests; no errors write code run tests; no errors update + solve conflicts
  29. 29. Merge before commit remote local update run tests; no errors write code error in run tests; no errors commit? error in update + solve conflicts merge? run tests; errors
  30. 30. Merge before commit remote local update run tests; no errors write code error in run tests; no errors commit? error in update + solve conflicts merge? run tests; errors No commit to revert to!
  31. 31. Commit before merge remote local update run tests; no errors
  32. 32. Commit before merge remote local update run tests; no errors write code run tests; no errors make local commit
  33. 33. Commit before merge remote local update run tests; no errors write code run tests; no errors make local commit update + solve conflicts
  34. 34. Commit before merge remote local update run tests; no errors write code error in run tests; no errors commit? make local commit error in update + solve conflicts merge? run tests; errors
  35. 35. Commit before merge remote local update run tests; no errors write code Revert to run tests; no errors working commit make local commit and try again
  36. 36. How I use git-svn svn buildout src theme policy
  37. 37. How I use git-svn svn buildout src theme policy $ git svn clone -s <buildout-url> git buildout src theme policy
  38. 38. How I use git-svn svn buildout src theme svn:external policy svn:external
  39. 39. How I use git-svn svn buildout src theme svn:external policy svn:external $ git svn clone -s <buildout-url> $ git-ext-svn-clone git buildout src theme git policy git
  40. 40. How I use git-svn svn
  41. 41. How I use git-svn svn clone master
  42. 42. How I use git-svn svn master branch feature X
  43. 43. How I use git-svn other commits svn master branch feature X
  44. 44. How I use git-svn svn fetch + rebase master feature X
  45. 45. How I use git-svn svn master rebase feature X
  46. 46. How I use git-svn svn master merge feature X
  47. 47. How I use git-svn svn dcommit (push) master
  48. 48. How I use git-svn • Unsolved problem: how to use git-svn when buildout uses: • infrae.subversion ? • mr.developer ?
  49. 49. Questions? Tips?

Editor's Notes






















































































































































































































  • ×