10. Overcoming Inertia
Progressive teams
Were running Git on their own servers
Git?
Git Champions
Guided the process from start to finish
Internal buzz
For Git was high
10
11. Where Do You Start?
“Git in the Enterprise: Not Just Git”
Gitorious
11
12. Importing History to Git
Leverage git fast-import for transferring VCS history
Au
VCS
.2
g
Mar.
12
0
Oct.
2
009
Git
2013
an
J
.
1
01
2
http://git-scm.com/book/en/Git-and-Other-Systems-Migrating-to-Git
12
13. How We Switched
Champions built new tools and were early adopters
Existing VCS
Release
Scripts
Git
Dependency Resolution
and
Artifact Repository
Jenkins
13
14. Tools in Orbitz’ Build Chain
Interface to
Source
Tools for
Publishing and
Releasing
Dependencies /
Artifacts
Commercial VCS
Proprietary CLI
Proprietary GUI
Custom Ruby
Scripts
Apache,
Custom Rails
application
Git
CLI, IDEs,
SourceTree,
many more!
Jenkins
(open source)
Artifactory
(open source)
14
16. Approaching the Migration on a Repo-by-repo Basis
30 minutes
= Good Luck!
+
...most of the time.
Tools
Docs
...we also helped as needed.
16
17. 597 Repositories in a Proprietary System
Over 100 GB
Closed
180
Deprecated
88
Migrated
329
= 20 GB in Git
17
18. Timeline
• Sep 2011: Tool evaluation (Gitorious vs. GitHub)
• Mar 2012: Building migration tools and testing
• Jun 2012: Migrations are in full swing,
several teams migrate every week
• Aug 2012: Final repos are migrated and our old
system is now read-only
Just 11 months from start to finish!
18
19. Costs
A mere 2500 man hours
Decreased license costs will
pay for the entire migration in
less than a year.
19
20. Improvements Already Demonstrated
20% Faster Builds
Remote teams are saying:
“Amazing performance improvement...”
“...how did we pull this off so quickly?”
Self-service
20
21. Why We Love Git!
Distributed
Equal performance regardless
of location — internet optional
Cheaper, faster, less administration
Thanks to open source and self-service
No more custom integration!
Everybody ships new tools with native Git support
21
22. Things We Wish We had Done Better
NFS and Hard Links are not buddies!
dev fork
200 MB
~400 repositories
20 GB
dev fork
dev fork
dev fork
master
dev fork
dev fork
1200 MB
~3000 developer forks
80 GB
22
23. How Stash Approaches Storage for Forks
Stash uses “Git Alternates” to share object space between repos
Parent
Fork B
---
---
Fork A
---
---
---
---
---
---
---
---
---
---
---
---
---
---
---
23
24. Hindsight is 20/20
What was easy
Locking and moving repos one at a time
What was hard
The same process for mega repos and some of our
deployment tools were tightly coupled to our VCS
Migrating history
Was useful for some, but not as standard process
24
25. In the Last Year...
because of
Stash Hooks:
Automated SOX controls
Automated deployments
25
26. Rate this Talk
Flying at the Speed of Git
Text code below to 22333
or visit http://bit.ly/15BJhZR
MEH = 41
NO T BA D = 42
P R ET T Y GO O D = 43
A WES O ME = 44
To join this session, send text 136888 to 22333