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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Distributed Version Control Systems

1,448
views

Published on

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

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,448
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
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?