Subversion Best Practices

24,691 views

Published on

Some useful best practices for subversion revision control

Published in: Technology
3 Comments
36 Likes
Statistics
Notes
  • Even he hasn't written much, I understood the practices cause I'm an experienced svn administrator and now, I'm reviewing some mistakes on our own practices. Thanks.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • last line should be 'tags' not 'rags' on slide 35
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • soo bad, not value infromation
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
24,691
On SlideShare
0
From Embeds
0
Number of Embeds
431
Actions
Shares
0
Downloads
987
Comments
3
Likes
36
Embeds 0
No embeds

No notes for slide

Subversion Best Practices

  1. 1. 4
  2. 2. Imports
  3. 3. top skimming vs cvs2svn
  4. 4. One project at a time
  5. 5. repo/project/ trunk/ branches/ tags/
  6. 6. http://cvs2svn.tigris.org/ cvs2svn.html
  7. 7. Tags and Branching
  8. 8. Don’t be afraid
  9. 9. TAGS Symbolic naming for groups of files
  10. 10. Snapshot
  11. 11. Mixed revisions
  12. 12. Don’t commit to tags
  13. 13. BRANCHES
  14. 14. Repository forks
  15. 15. Trunk Branch
  16. 16. Contain independent changes
  17. 17. Parallel commits
  18. 18. Generating releases and space to experiement
  19. 19. Trunk stays stable
  20. 20. Each release is on a branch
  21. 21. Release points are tagged
  22. 22. Branch and tag when appropriate
  23. 23. Quick example
  24. 24. Creating a release branch
  25. 25. svn mkdir -m ‘Created branches directory’ svn://repo/svn/project/branches
  26. 26. svn mkdir -m ‘Created branches directory’ svn://repo/svn/project/branches svn copy -m ‘Creating release branch 1.0’ svn://repo/svn/project/trunk svn://repo/svn/project/branches/RB-1.0
  27. 27. Checkout release branch to local working copy
  28. 28. svn co svn://svn/rep/branches/RB-1.0 rb1.0
  29. 29. Switch working copy
  30. 30. svn switch svn://svn/rep/branches/RB-1.0
  31. 31. Some time passes...
  32. 32. Generate a release
  33. 33. Tag correct files in correct branch Hopefully the latest release branch
  34. 34. svn mkdir -m ‘Created tags directory’ svn://repo/svn/project/tags svn copy -m ‘Tagging release 1.0.0’ svn://repo/svn/project/branches/RB-1.0 svn://repo/svn/project/rags/REL-1.0.0
  35. 35. Check out a tagged release
  36. 36. svn co svn://svn/rep/tags/REL-1.0.0
  37. 37. Merging
  38. 38. Trunk stays stable
  39. 39. Merge branches back to trunk
  40. 40. Trunk Merge Branch
  41. 41. svn update svn merge -r37:HEAD svn://svn/rep/branches/RB-1.0 svn commit -m ‘Merged r37 to r38’
  42. 42. svn update svn merge -r37:38 svn://svn/rep/branches/RB-1.0 svn commit -m ‘Merged r37 to r38’
  43. 43. Good for spikes
  44. 44. Good for bug fixes
  45. 45. Love your IDE
  46. 46. IntelliJ IDEA Eclipse Komodo emacs vim
  47. 47. Bonus recipe!
  48. 48. Automated integration
  49. 49. SVN hooks (just like CVS)
  50. 50. Automatic actions
  51. 51. Cruise Control
  52. 52. Harmony
  53. 53. Talk to SSG
  54. 54. slideshare.net/mza

×