• Save
Upcoming SlideShare
Loading in...5




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 Git+CI Presentation Transcript

  • Git + CILets look at it.
  • MeIan McLeanFlash Development Team.imclean@pointroll.com
  • Git OriginsCreated by Linux TorvaldI hear he’s pretty smart
  • Git vs SubversionDistributed vs CentralizedrepositoriesLocal+Remote revisioning vs remoteonlyFull history versus single revisionhistory.Fast versus slow
  • 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
  • Git, however.Extremely fast operations Everything local on disk Only pushes require networkLess data corruption single .git versus many .svnCommits without internet
  • Distributed meansEasily pull/push changes from anyrepository upstream or downstreamAny workflow is supported
  • SVN: Single repository GIT: Independent repositories trunk Master branch 1 branch 2 tag 1 tag 2 Fork Fork Fork
  • Example Workflow QA Master Feature 1 GoldMaster Master Feature 2 Feature 3
  • Local versus RemoteSVN: All operations remoteGIT: Local operations, remote forsync only.Guess which is faster?
  • History: Full vs ShallowSVN - Only holds data for a singlerevisionGit - Full history of the entirerepositoryFull - faster reverts, diffs, logs,browsing, etc.
  • Delta trackingGit tracks delta between a fork andits parent = faster merges.SVN must compare every file whendoing a merge.
  • Disaster PreventionSVN: If the central repository fails- game over.Git: If a remote repository failsanyone can restore it - all checkoutsare the full repository.
  • SVN WorkflowFrequent remote commits necessaryForces commits of meaningless chunksof workOne persons problems become everyonesupon update
  • Git WorkflowMake frequent commits locally withoutconsequenceRevision your work offlinePush only meaningful chunks of workIssue pull request when ready
  • Concept of CISingle trunk or master repoEveryone throws in all work, completeor incompleteAll errors break the build
  • Meaningful build breaksErrors should be integration errorsthat can’t be easily predicted beforemerging code bases.
  • Pointless build breaksErrors that existed in work pre-comitt and are visible beforeintegration.
  • UnfortunatelySubversion makes us commit everythingoften if we want rollbacks -pointless build errors areinevitable.
  • 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.
  • 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.
  • This means...Builds rarely break.Automated builds consist of stablecompleted features.Stakeholders see less screw-ups as abyproduct of unfinished features
  • Github.comManaged Git repositoriesUI for issuing/accepting pullrequestsWeb interface to commit logs, sourcecontent, merge graphs.
  • Pricing
  • GitosisStandlone git server.Linux basedPowers Github, but lacks theadditional features.
  • The End.