Your SlideShare is downloading. ×
  • Like
Distributed Version Control Systems
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Distributed Version Control Systems

  • 1,438 views
Published

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 …

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,438
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
81
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide





















































































































































































































Transcript

  • 1. Distributed Version Control Systems A short introduction 19 February, 2010
  • 2. Outline • Goals • What is DVCS anyway? • What are the disadvantages? • What are the advantages? • How do I interface with Subversion?
  • 3. Goals • Inform about DVCS • Not trying to force a change!
  • 4. DVCS in 5 minutes Flexible workflow
  • 5. DVCS in 5 minutes Flexible workflow
  • 6. DVCS in 5 minutes Flexible workflow
  • 7. DVCS in 5 minutes Flexible workflow
  • 8. DVCS in 5 minutes Flexible workflow dev prod
  • 9. DVCS in 5 minutes • Complete local copy of the repository • Most common actions don’t need network • Private branches
  • 10. DVCS in 5 minutes • Most popular: • Bazaar • Git • Mercurial
  • 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. 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. Advantages • Cooperation without commits to central repo • Better merging, thus low barrier for branching • Commit before merge instead of merge before commit
  • 14. Cooperation
  • 15. Cooperation
  • 16. Cooperation
  • 17. Branching “trunk”
  • 18. Branching “trunk” branch feature X
  • 19. Branching “trunk” branch feature X
  • 20. Branching “trunk” branch feature X
  • 21. Branching “trunk” branch branch
  • 22. Branching “trunk” branch branch
  • 23. Branching “trunk” branch feature X
  • 24. Branching release “trunk” branch branch bugfix
  • 25. Branching “trunk” branch branch feature X
  • 26. Merge before commit remote local update run tests; no errors
  • 27. Merge before commit remote local update run tests; no errors write code run tests; no errors
  • 28. Merge before commit remote local update run tests; no errors write code run tests; no errors update + solve conflicts
  • 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. 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. Commit before merge remote local update run tests; no errors
  • 32. Commit before merge remote local update run tests; no errors write code run tests; no errors make local commit
  • 33. Commit before merge remote local update run tests; no errors write code run tests; no errors make local commit update + solve conflicts
  • 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. 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. How I use git-svn svn buildout src theme policy
  • 37. How I use git-svn svn buildout src theme policy $ git svn clone -s <buildout-url> git buildout src theme policy
  • 38. How I use git-svn svn buildout src theme svn:external policy svn:external
  • 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. How I use git-svn svn
  • 41. How I use git-svn svn clone master
  • 42. How I use git-svn svn master branch feature X
  • 43. How I use git-svn other commits svn master branch feature X
  • 44. How I use git-svn svn fetch + rebase master feature X
  • 45. How I use git-svn svn master rebase feature X
  • 46. How I use git-svn svn master merge feature X
  • 47. How I use git-svn svn dcommit (push) master
  • 48. How I use git-svn • Unsolved problem: how to use git-svn when buildout uses: • infrae.subversion ? • mr.developer ?
  • 49. Questions? Tips?