True Git

986 views
916 views

Published on

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
986
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

True Git

  1. 1. True Git THE GREAT MIGRATION STEFAN SAASEN • STASH DEVELOPMENT MANAGER • ATLASSIAN • @stefansaasen
  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. Why am I passionate about this?
  10. 10. Why am I passionate about this?
  11. 11. Why Git?
  12. 12. Branching & Merging
  13. 13. Branching & Merging fast, cheap and simple
  14. 14. first class concept Branching & Merging fast, cheap and simple
  15. 15. first class concept Branching & Merging fast, cheap and simple
  16. 16. Foundation for new workflows
  17. 17. Speed
  18. 18. Speed git log git status git diff
  19. 19. git bisect Speed git log git status git diff
  20. 20. git bisect
  21. 21. Bad git bisect
  22. 22. Good (v2.7) Bad git bisect
  23. 23. Test Bad git bisect
  24. 24. Test Bad git bisect
  25. 25. Regression! Bad git bisect
  26. 26. Regression! git bisect Fast graph traversal Fast checkout
  27. 27. git bisect Speed git log git status git diff
  28. 28. Enables new features Improves basic features
  29. 29. Local commits
  30. 30. Edit & Publish Local commits
  31. 31. Edit & Publish Local commits Rewrite History
  32. 32. Edit & Publish Local commits Rewrite History
  33. 33. Flexibility
  34. 34. Git does what you are doing today, only better
  35. 35. SVN
  36. 36. GIT SVN LABEL TITLE
  37. 37. GIT SVN LABEL TITLE Existing workflows
  38. 38. GIT SVN LABEL TITLE Existing workflows New ways of collaborating
  39. 39. GIT SVN LABEL TITLE Existing workflows New branch 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. Release branching master 2.8 2.7
  44. 44. Release branching master 2.8 2.7 Bugfix
  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. Git Workflows a-la-carte Rapid Agile Delivery Nicola Paolucci Thursday - 11:15 am Matthew Watson Thursday - 1:15 pm
  50. 50. So you’ve decided to migrate!
  51. 51. The process Adoption 2 1 3 Inception Conversion
  52. 52. Inception 1
  53. 53. Inception • Is git suitable? 1
  54. 54. Inception • Is git suitable? • Test the conversion 1
  55. 55. Inception • Is git suitable? • Test the conversion • Identify the repositories that need to be converted 1
  56. 56. 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
  57. 57. 1
  58. 58. The process Adoption 2 1 3 Inception Conversion
  59. 59. Adoption 2
  60. 60. Adoption • You need to answer: “What’s in it for me” 2
  61. 61. Adoption • You need to answer: “What’s in it for me” • Make sure tooling is ready and can be used by everyone 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 • Identify the git champions - they will be thrilled to help 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 • Don’t expect to win everyone over immediately 2
  64. 64. 2
  65. 65. 2 Just text by itself, for impact.
  66. 66. The process Adoption 2 1 3 Inception Conversion
  67. 67. We’ve got you covered! & Scripts Tutorial & Documentation
  68. 68. We’ve got you covered! & Scripts Tutorial & Documentation bit.ly/go-dvcs
  69. 69. 3 git-svn
  70. 70. Conversion - Preparation 3
  71. 71. Conversion - Preparation 3 Map Authors jdeveloper = John Developer <jd@example.com>
  72. 72. Conversion - Preparation 3 Map Authors jdeveloper = John Developer <jd@example.com> /tags /trunk /branches Identify SVN repository layout
  73. 73. Conversion - Initial Clone 3 git svn clone --authors-file=/authors.txt --trunk=/trunk --tags=/tags --branches=/branches
  74. 74. Conversion - Initial Clone ? 3 git svn clone --authors-file=/authors.txt --trunk=/trunk --tags=/tags --branches=/branches
  75. 75. Conversion - Sync 3
  76. 76. Conversion - Sync 3
  77. 77. Conversion - Sync git svn fetch 3
  78. 78. Infrastructure first CI Issues IDE 3
  79. 79. Infrastructure first read-only CI Issues IDE 3
  80. 80. Infrastructure first read-only CI Issues IDE 3
  81. 81. Infrastructure first read-only Sync every minute CI Issues IDE 3
  82. 82. Conversion - Cleanup • Cleanup branches • Remove unused files • Create git tags • Remove commit metadata 3
  83. 83. Conversion - Cleanup • Cleanup branches • Remove unused files • Create git tags • Remove commit metadata 3
  84. 84. 3 read-only CI Issues IDE
  85. 85. 3 Then your team 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. Other Tools?
  89. 89. SubGit
  90. 90. The process Adoption 2 1 3 Inception Conversion
  91. 91. Or are you?
  92. 92. Collaboration model? Branching model? Just text by itself, for impact.
  93. 93. + Enterprise
  94. 94. + Enterprise = Centralized
  95. 95. Metrics Issues Builds Deployments + Enterprise = Centralized
  96. 96. Workflows will change
  97. 97. for the better Workflows will change
  98. 98. for the better Workflows will change but they don’t have to change on day one!
  99. 99. This happened in both Confluence and JIRA...
  100. 100. From SVN like confluence-project-4.0 CONF-1234 master
  101. 101. From SVN like git cherry-pick bae6251 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 confluence-project-4.0 CONF-1234 master
  104. 104. From SVN like confluence-project-4.0 CONF-1234 master
  105. 105. To git branch based workflow confluence-project-4.1 master
  106. 106. To git branch based workflow confluence-project-4.1 master
  107. 107. To git branch based workflow confluence-project-4.1 CONF-2345 master
  108. 108. To git branch based workflow git merge confluence-project-4.1 confluence-project-4.1 CONF-2345 master
  109. 109. To git branch based workflow confluence-project-4.1 CONF-2345 master
  110. 110. To git branch based workflow git merge confluence-project-4.1 confluence-project-4.1 CONF-2345 master
  111. 111. Forks can be useful!
  112. 112. Forks can be useful! Sub-Teams
  113. 113. Forks can be useful! Sub-Teams
  114. 114. Forks can be useful! Contributions from outside of the team Sub-Teams
  115. 115. Conclusion
  116. 116. 80 78 70 68 60 20 0 49 41 40 68 55 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  117. 117. 80 78 70 68 60 20 0 49 41 40 68 55 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  118. 118. “ Subversion (58%) is being threatened by Git (47%) for de facto leadership of the Version Control space. ” ZEROTURNAROUND DEVELOPER PRODUCTIVITY REPORT 2013
  119. 119. is here to stay
  120. 120. expands
  121. 121. migration is a solved problem
  122. 122. Thank you! STEFAN SAASEN • STASH DEVELOPMENT MANAGER • ATLASSIAN • @stefansaasen

×