JAZOON'13 - Stefan Saasen - True Git: The Great Migration

621 views

Published on

http://guide13.jazoon.com/#/submissions/175

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
621
On SlideShare
0
From Embeds
0
Number of Embeds
59
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JAZOON'13 - Stefan Saasen - True Git: The Great Migration

  1. 1. True The great migration Stefan Saasen
  2. 2. TODO Show of hands Picture with hands/lighter/concert
  3. 3. Source Control Management SVN Git
  4. 4. Source Control Management 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  5. 5. Source Control Management 78 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  6. 6. Source Control Management 78 68 41 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  7. 7. Source Control Management 78 70 68 49 41 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  8. 8. Source Control Management 78 70 68 68 49 41 55 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  9. 9. Stefan Saasen Atlassian Stash Development Lead
  10. 10. Stefan Saasen Atlassian Stash Development Lead I come out nice in pictures, I know :-). @stefansaasen
  11. 11. Why am I passionate about this?
  12. 12. Why Git?
  13. 13. Branching & Merging
  14. 14. Branching & Merging fast, cheap and simple
  15. 15. first class concept Branching & Merging fast, cheap and simple
  16. 16. first class concept Branching & Merging fast, cheap and simple
  17. 17. Foundation for new workflows
  18. 18. Speed
  19. 19. Speed git log git status git diff
  20. 20. git bisect Speed git log git status git diff
  21. 21. git bisect
  22. 22. Bad git bisect
  23. 23. Good (v2.7) Bad git bisect
  24. 24. Test Bad git bisect
  25. 25. Test Bad git bisect
  26. 26. Regression! Bad git bisect
  27. 27. Regression! git bisect Fast graph traversal Fast checkout
  28. 28. git bisect Speed git log git status git diff
  29. 29. Enables new features Improves basic features
  30. 30. Local commits
  31. 31. Edit & Publish Local commits
  32. 32. Edit & Publish Local commits Rewrite History
  33. 33. Edit & Publish Local commits Rewrite History
  34. 34. Flexibility
  35. 35. Git does what you are doing today, only better
  36. 36. SVN
  37. 37. GIT SVN LABEL TITLE
  38. 38. GIT SVN LABEL TITLE Existing workflows
  39. 39. GIT SVN LABEL TITLE Existing workflows New ways of collaborating
  40. 40. GIT SVN LABEL TITLE Existing workflows New branch workflows New ways of collaborating
  41. 41. GIT SVN LABEL TITLE Existing workflows New branch workflows New ways of collaborating
  42. 42. GIT SVN LABEL TITLE Existing workflows New branch workflows New ways of collaborating
  43. 43. GIT SVN LABEL TITLE Existing workflows New branch workflows New ways of collaborating
  44. 44. Release branching master 2.8 2.7
  45. 45. Release branching master 2.8 2.7 Bugfix
  46. 46. Release branching master 2.8 2.7 Bugfix 
  47. 47. Release branching master 2.8 2.7 Bugfix 
  48. 48. Release branching master 2.8 2.7 Bugfix 
  49. 49. Release branching master 2.8 2.7 Bugfix 
  50. 50. Real World git workflows Stefan Saasen Wednesday - 14:00
  51. 51. So you’ve decided to migrate!
  52. 52. The process Adoption 2 1 3 Inception Conversion
  53. 53. Inception 1
  54. 54. Inception • Is git suitable? 1
  55. 55. Inception • Is git suitable? • Test the conversion 1
  56. 56. Inception • Is git suitable? • Test the conversion • Identify the repositories that need to be converted 1
  57. 57. Inception • Is git suitable? • Test the conversion • Identify the repositories that need to be converted • Identify the tools that need to be updated. CI, issue tracking, IDE, scripts and build tools, deployment tools 1
  58. 58. 1
  59. 59. The process Adoption 2 1 3 Inception Conversion
  60. 60. Adoption 2
  61. 61. Adoption • You need to answer: “What’s in it for me” 2
  62. 62. Adoption • You need to answer: “What’s in it for me” • Make sure tooling is ready and can be used by everyone 2
  63. 63. Adoption • You need to answer: “What’s in it for me” • Make sure tooling is ready and can be used by everyone • Identify the git champions - they will be thrilled to help 2
  64. 64. Adoption • You need to answer: “What’s in it for me” • Make sure tooling is ready and can be used by everyone • Identify the git champions - they will be thrilled to help • Don’t expect to win everyone over immediately 2
  65. 65. 2
  66. 66. 2 Just text by itself, for impact.
  67. 67. The process Adoption 2 1 3 Inception Conversion
  68. 68. We’ve got you covered! & Scripts Tutorial & Documentation
  69. 69. We’ve got you covered! & Scripts Tutorial & Documentation bit.ly/go-dvcs
  70. 70. 3 git-svn
  71. 71. Conversion - Preparation 3
  72. 72. Conversion - Preparation 3 Map Authors jdeveloper = John Developer <jd@example.com>
  73. 73. Conversion - Preparation 3 Map Authors jdeveloper = John Developer <jd@example.com> /tags /trunk /branches Identify SVN repository layout
  74. 74. Conversion - Initial Clone 3 git svn clone --authors-file=/authors.txt --trunk=/trunk --tags=/tags --branches=/branches
  75. 75. Conversion - Initial Clone ? 3 git svn clone --authors-file=/authors.txt --trunk=/trunk --tags=/tags --branches=/branches
  76. 76. Conversion - Sync 3
  77. 77. Conversion - Sync 3
  78. 78. Conversion - Sync git svn fetch 3
  79. 79. Infrastructure first CI Issues IDE 3
  80. 80. Infrastructure first read-only CI Issues IDE 3
  81. 81. Infrastructure first read-only CI Issues IDE 3
  82. 82. Infrastructure first read-only Sync every minute CI Issues IDE 3
  83. 83. Conversion - Cleanup • Cleanup branches • Remove unused files • Create git tags • Remove commit metadata 3
  84. 84. Conversion - Cleanup • Cleanup branches • Remove unused files • Create git tags • Remove commit metadata 3
  85. 85. 3 read-only CI Issues IDE
  86. 86. 3 Then your team read-only CI Issues IDE
  87. 87. 3 Then your team read-only CI Issues IDE
  88. 88. 3 Then your team read-only CI Issues IDE
  89. 89. Other Tools?
  90. 90. SubGit
  91. 91. The process Adoption 2 1 3 Inception Conversion
  92. 92. Or are you?
  93. 93. Collaboration model? Branching model? Just text by itself, for impact.
  94. 94. + Enterprise
  95. 95. + Enterprise = Centralized
  96. 96. Metrics Issues Builds Deployments + Enterprise = Centralized
  97. 97. Workflows will change
  98. 98. for the better Workflows will change
  99. 99. for the better Workflows will change but they don’t have to change on day one!
  100. 100. This happened in both Confluence and JIRA...
  101. 101. From SVN like confluence-project-4.0 CONF-1234 master
  102. 102. From SVN like git cherry-pick bae6251 confluence-project-4.0 CONF-1234 master
  103. 103. From SVN like git cherry-pick bae6251 confluence-project-4.0 CONF-1234 master
  104. 104. From SVN like confluence-project-4.0 CONF-1234 master
  105. 105. From SVN like confluence-project-4.0 CONF-1234 master
  106. 106. To git branch based workflow confluence-project-4.1 master
  107. 107. To git branch based workflow confluence-project-4.1 master
  108. 108. To git branch based workflow confluence-project-4.1 CONF-2345 master
  109. 109. To git branch based workflow git merge confluence-project-4.1 confluence-project-4.1 CONF-2345 master
  110. 110. To git branch based workflow confluence-project-4.1 CONF-2345 master
  111. 111. To git branch based workflow git merge confluence-project-4.1 confluence-project-4.1 CONF-2345 master
  112. 112. Conclusion
  113. 113. 80 78 70 68 60 20 0 49 41 40 68 55 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  114. 114. 80 78 70 68 60 20 0 49 41 40 68 55 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  115. 115. “ Subversion (58%) is being threatened by Git (47%) for de facto leadership of the Version Control space. ” ZEROTURNAROUND DEVELOPER PRODUCTIVITY REPORT 2013
  116. 116. is here to stay
  117. 117. expands
  118. 118. migration is a solved problem
  119. 119. Thank you for your attention! @stefansaasen ssaasen@atlassian.com www.atlassian.com
  120. 120. Image credits http://www.flickr.com/photos/marfis75/3272079115/sizes/o/ http://www.flickr.com/photos/al-taqi/4135841914/ http://www.flickr.com/photos/duremi/3200067353/sizes/o/

×