True Git
THE GREAT MIGRATION

STEFAN SAASEN

•

STASH DEVELOPMENT MANAGER

•

ATLASSIAN

•

@stefansaasen
TODO Show of hands

Picture with hands/lighter/concert

Add attribution slide
Source Control Management
78

70

68

68
49

41

55

20

2011

2013 (projected)
SVN

2013
Git

2015 (projected)
Why am I passionate about this?
Why Git?
first class concept

Branching & Merging
fast, cheap and simple
first class concept

Foundation for new
Branching & Merging
workflows

fast, cheap and simple
git bisect

Speed
git log
git status

git diff
Good (v2.7)

git bisect

Regression!
Test

Fast graph traversal
Fast checkout

Bad
git bisect

Enables new features
Speed
Improves basic features
git log
git status

git diff
Edit & Publish

Local commits
Rewrite History
Edit & Publish

Local commits
Flexibility
Rewrite History
Git does what you are
doing today, only better
GIT

SVN

LABEL TITLE

Existing
workflows

New branch
workflows

New ways of
collaborating
GIT

SVN

LABEL TITLE

Existing
workflows

New branch
workflows

New ways of
collaborating
Release branching
master

2.8

2.7

Bugfix

!
Git Workflows
a-la-carte

Rapid Agile
Delivery

Nicola Paolucci
Thursday - 11:15 am

Matthew Watson
Thursday - 1:15 pm
So you’ve decided to
migrate!
The process

Adoption

2
1
3
Inception

Conversion
Inception
• Is git suitable?
• Test the conversion
• Identify the repositories that need to be
converted
• Identify the to...
1
The process

Adoption

2
1
3
Inception

Conversion
Adoption

2

• You need to answer: “What’s in it for me”
• Make sure tooling is ready and can be used by
everyone
• Identi...
2
2

Just text by itself, for
impact.
The process

Adoption

2
1
3
Inception

Conversion
We’ve got you covered!

&
Scripts

Tutorial & Documentation
bit.ly/go-dvcs
3

git-svn
Conversion - Preparation

3

Map Authors
jdeveloper = John Developer <jd@example.com>

/tags
/trunk
/branches

Identify SV...
Conversion - Initial Clone

?

3

git svn clone 
--authors-file=/authors.txt 
--trunk=/trunk 
--tags=/tags 
--branches=/br...
Conversion - Sync

git svn fetch

3
Infrastructure first
read-only
Sync every minute

CI

Issues

IDE

3
Conversion - Cleanup
• Cleanup branches
• Remove unused files
• Create git tags
• Remove commit
metadata

3
3

Then your team
read-only

CI

Issues

read-only

IDE
SubGit
Other Tools?
The process

Adoption

2
1
3
Inception

Conversion
Or are you?
Collaboration model?
Branching model?

Just text by itself, for
impact.
Metrics
Issues
Builds

Deployments

+

Enterprise

= Centralized
for the better

Workflows will change
but they don’t have to change on day one!
This happened in both
Confluence and JIRA...
From SVN like
git cherry-pick bae6251

confluence-project-4.0
CONF-1234

master
To git branch based workflow
git merge confluence-project-4.1
git merge confluence-project-4.1

confluence-project-4.1
CON...
Forks can be
useful!

Contributions from
outside of the team

Sub-Teams
Conclusion
80

78

70

68

60

20
0

49

41

40

68
55

20

2011

2013 (projected)
SVN

2013
Git

2015 (projected)
“

Subversion (58%) is being
threatened by Git (47%) for de
facto leadership of the Version
Control space.

”

ZEROTURNARO...
is here to stay
expands
migration is a
solved problem
Thank you!
STEFAN SAASEN

•

STASH DEVELOPMENT MANAGER

•

ATLASSIAN

•

@stefansaasen
True Git: The Great Migration
True Git: The Great Migration
Upcoming SlideShare
Loading in …5
×

True Git: The Great Migration

1,102 views

Published on

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

No Downloads
Views
Total views
1,102
On SlideShare
0
From Embeds
0
Number of Embeds
572
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

True Git: The Great Migration

  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 Add attribution slide
  3. 3. Source Control Management 78 70 68 68 49 41 55 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  4. 4. Why am I passionate about this?
  5. 5. Why Git?
  6. 6. first class concept Branching & Merging fast, cheap and simple
  7. 7. first class concept Foundation for new Branching & Merging workflows fast, cheap and simple
  8. 8. git bisect Speed git log git status git diff
  9. 9. Good (v2.7) git bisect Regression! Test Fast graph traversal Fast checkout Bad
  10. 10. git bisect Enables new features Speed Improves basic features git log git status git diff
  11. 11. Edit & Publish Local commits Rewrite History
  12. 12. Edit & Publish Local commits Flexibility Rewrite History
  13. 13. Git does what you are doing today, only better
  14. 14. GIT SVN LABEL TITLE Existing workflows New branch workflows New ways of collaborating
  15. 15. GIT SVN LABEL TITLE Existing workflows New branch workflows New ways of collaborating
  16. 16. Release branching master 2.8 2.7 Bugfix !
  17. 17. Git Workflows a-la-carte Rapid Agile Delivery Nicola Paolucci Thursday - 11:15 am Matthew Watson Thursday - 1:15 pm
  18. 18. So you’ve decided to migrate!
  19. 19. The process Adoption 2 1 3 Inception Conversion
  20. 20. 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
  21. 21. 1
  22. 22. The process Adoption 2 1 3 Inception Conversion
  23. 23. Adoption 2 • 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
  24. 24. 2
  25. 25. 2 Just text by itself, for impact.
  26. 26. The process Adoption 2 1 3 Inception Conversion
  27. 27. We’ve got you covered! & Scripts Tutorial & Documentation bit.ly/go-dvcs
  28. 28. 3 git-svn
  29. 29. Conversion - Preparation 3 Map Authors jdeveloper = John Developer <jd@example.com> /tags /trunk /branches Identify SVN repository layout
  30. 30. Conversion - Initial Clone ? 3 git svn clone --authors-file=/authors.txt --trunk=/trunk --tags=/tags --branches=/branches
  31. 31. Conversion - Sync git svn fetch 3
  32. 32. Infrastructure first read-only Sync every minute CI Issues IDE 3
  33. 33. Conversion - Cleanup • Cleanup branches • Remove unused files • Create git tags • Remove commit metadata 3
  34. 34. 3 Then your team read-only CI Issues read-only IDE
  35. 35. SubGit Other Tools?
  36. 36. The process Adoption 2 1 3 Inception Conversion
  37. 37. Or are you?
  38. 38. Collaboration model? Branching model? Just text by itself, for impact.
  39. 39. Metrics Issues Builds Deployments + Enterprise = Centralized
  40. 40. for the better Workflows will change but they don’t have to change on day one!
  41. 41. This happened in both Confluence and JIRA...
  42. 42. From SVN like git cherry-pick bae6251 confluence-project-4.0 CONF-1234 master
  43. 43. To git branch based workflow git merge confluence-project-4.1 git merge confluence-project-4.1 confluence-project-4.1 CONF-2345 master
  44. 44. Forks can be useful! Contributions from outside of the team Sub-Teams
  45. 45. Conclusion
  46. 46. 80 78 70 68 60 20 0 49 41 40 68 55 20 2011 2013 (projected) SVN 2013 Git 2015 (projected)
  47. 47. “ Subversion (58%) is being threatened by Git (47%) for de facto leadership of the Version Control space. ” ZEROTURNAROUND DEVELOPER PRODUCTIVITY REPORT 2013
  48. 48. is here to stay
  49. 49. expands
  50. 50. migration is a solved problem
  51. 51. Thank you! STEFAN SAASEN • STASH DEVELOPMENT MANAGER • ATLASSIAN • @stefansaasen

×