• Save
Upcoming SlideShare
Loading in...5

Like this? Share it with your network





A look at Git and how it provides a better workflow for Continuous Integration

A look at Git and how it provides a better workflow for Continuous Integration



Total Views
Views on SlideShare
Embed Views



8 Embeds 481

http://5works.dev 423
http://localhost 23
http://join5works.com 21
http://twitter.com 7
http://www.linkedin.com 4
http://us-w1.rockmelt.com 1
https://twitter.com 1 1



Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Git+CI Presentation Transcript

  • 1. Git + CILets look at it.
  • 2. MeIan McLeanFlash Development Team.imclean@pointroll.com
  • 3. Git OriginsCreated by Linux TorvaldI hear he’s pretty smart
  • 4. Git vs SubversionDistributed vs CentralizedrepositoriesLocal+Remote revisioning vs remoteonlyFull history versus single revisionhistory.Fast versus slow
  • 5. Where SVN failsPainfully slow check-in/check outoperations to its local database.Easily corruptable check-outs.Frequent need for “clean-ups”.Can’t commit without internetRigid branching/merging workflow
  • 6. Git, however.Extremely fast operations Everything local on disk Only pushes require networkLess data corruption single .git versus many .svnCommits without internet
  • 7. Distributed meansEasily pull/push changes from anyrepository upstream or downstreamAny workflow is supported
  • 8. SVN: Single repository GIT: Independent repositories trunk Master branch 1 branch 2 tag 1 tag 2 Fork Fork Fork
  • 9. Example Workflow QA Master Feature 1 GoldMaster Master Feature 2 Feature 3
  • 10. Local versus RemoteSVN: All operations remoteGIT: Local operations, remote forsync only.Guess which is faster?
  • 11. History: Full vs ShallowSVN - Only holds data for a singlerevisionGit - Full history of the entirerepositoryFull - faster reverts, diffs, logs,browsing, etc.
  • 12. Delta trackingGit tracks delta between a fork andits parent = faster merges.SVN must compare every file whendoing a merge.
  • 13. Disaster PreventionSVN: If the central repository fails- game over.Git: If a remote repository failsanyone can restore it - all checkoutsare the full repository.
  • 14. SVN WorkflowFrequent remote commits necessaryForces commits of meaningless chunksof workOne persons problems become everyonesupon update
  • 15. Git WorkflowMake frequent commits locally withoutconsequenceRevision your work offlinePush only meaningful chunks of workIssue pull request when ready
  • 16. Concept of CISingle trunk or master repoEveryone throws in all work, completeor incompleteAll errors break the build
  • 17. Meaningful build breaksErrors should be integration errorsthat can’t be easily predicted beforemerging code bases.
  • 18. Pointless build breaksErrors that existed in work pre-comitt and are visible beforeintegration.
  • 19. UnfortunatelySubversion makes us commit everythingoften if we want rollbacks -pointless build errors areinevitable.
  • 20. SVN + CI = MehNeed for frequent commits for thesake of revisioning results inuntested code and frequent buildbreaks.No safeguards against incomplete,untested, or garbage code being addedto trunk.
  • 21. Git + CI = BetterCommits are only pushed to masterwhen work is complete and it makessense.Pull requests don’t automaticallypollute master.Integration manager rejects badrequests - maintains integrity.
  • 22. This means...Builds rarely break.Automated builds consist of stablecompleted features.Stakeholders see less screw-ups as abyproduct of unfinished features
  • 23. Github.comManaged Git repositoriesUI for issuing/accepting pullrequestsWeb interface to commit logs, sourcecontent, merge graphs.
  • 24. Pricing
  • 25. GitosisStandlone git server.Linux basedPowers Github, but lacks theadditional features.
  • 26. The End.