SlideShare a Scribd company logo
Version Uncontrolled!
How to Manage Your Version Control
Session	
  217	
  
Tuesday,	
  May	
  6,2015	
  
10:50	
  –	
  11:30	
  am	
  
Track	
  2	
  
Raastech, Inc.
2201 Cooperative Way, Suite 600
Herndon, VA 20171
+1-703-884-2223
info@raastech.com
Slide 2 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
About Me
§  Harold Dost III @hdost
§  6+ years of Oracle Middleware experience
§  OCE (SOA Foundation Practitioner)
§  Oracle ACE Associate
§  From Michigan
§  blog.raastech.com
Slide 3 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
About Raastech
§  Small systems integrator founded in 2009
§  Headquartered in the Washington DC area
§  Specializes in Oracle Fusion Middleware
§  Oracle Platinum Partner & Reseller
§  Oracle SOA Specialized
§  100% of consultants are Oracle certified
§  100% of consultants present at major Oracle conferences
§  100% of consultants have published books, whitepapers, or articles
§  Oracle SOA Specialized – 1 in 1,500 worldwide
§  Oracle Platinum Partner – 1 in 3,000 worldwide
Slide 4 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Outline
1.  Introduction
2.  Version Control Systems
3.  Useful Version Control Commands
4.  Workflows
5.  The Deployment Cycle
6.  Branching
7.  Getting Your Team On Board
8.  Questions & Answers
Slide 5 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Slide 6 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Bias
§  I am biased towards Git
§  I have done my best to be neutral
Git Factoids
§  Git	
  is	
  a	
  distributed	
  revision	
  control	
  system	
  with	
  an	
  emphasis	
  on	
  speed,	
  data	
  integrity,	
  
and	
  support	
  for	
  distributed,	
  non-­‐linear	
  workflows.	
  
§  Git	
   was	
   iniHally	
   designed	
   and	
   developed	
   by	
   Linus	
   Torvalds	
   for	
   Linux	
   kernel	
  
development	
  in	
  2005	
  
§  Git	
  is	
  the	
  most	
  widely	
  adopted	
  version	
  control	
  system	
  for	
  soLware	
  development.	
  
§  Git	
  is	
  freely	
  distributed	
  under	
  the	
  terms	
  of	
  the	
  GNU	
  General	
  Public	
  License	
  v2.	
  
Slide 7 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Typical Large Corp Release Method
§  Developer creates code
§  Developer unit tests code
§  Code may get tested by 3rd party
§  Code may get reviewed by 3rd party
§  Code may get tested in a secondary environment to
ensure setups are correct
§  Code gets deployed to Production
§  Spot checks may be done
Slide 8 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Where is the code?
§  Often developer commits code to trunk repeatedly
Slide 9 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Advantages
§  Easy!
Slide 10 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Pitfalls
§  Not Simple
§  http://www.infoq.com/presentations/Simple-Made-Easy
§  http://www.slideshare.net/evandrix/simple-made-easy
§  Need people to remember or record in a tool which code
version is to be deployed
§  After deployment version may be all but lost
§  Could have tools in place, but those require additional
maintenance
§  Places tracking outside of developer responsibility
Slide 11 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Slide 12 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Types of Version Control
§  Centralized
§  Distributed
Slide 13 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Centralized Version Control
§  Relies on single repository
§  People check-out and
check-in documents
§  Some locking may be used
to prevent conflicts
§  Branches treated like
folders
Repository	
  
Curly	
   Larry	
   Moe	
  
Slide 14 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Corporate Behavior: Centralized
§  Merges are feared
§  Tendency towards committing only when absolutely
necessary
§  Commits to trunk/master for everything
Slide 15 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Centralized Version Control Software
Subversion	
  (SVN)	
  
hRp://subversion.Hgris.org	
  
Team	
  Founda=on	
  Server	
  (TFS)	
  
hRps://msdn.microsoL.com/en-­‐us/vstudio/ff637362.aspx	
  
Concurrent	
  Versioning	
  System	
  (CVS)	
  
hRp://www.nongnu.org/cvs/	
  
Perforce(P4)	
  
hRp://www.perforce.com	
  
ClearCase	
  
hRp://www-­‐03.ibm.com/soLware/products/en/clearcase	
  
Slide 16 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
SVN
§  Initial Release in 2000
§  An Apache Foundation Project
§  Mostly compatible successor to CVS
Slide 17 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Distributed Version Control
§  Repositories are local
§  Peer-to-Peer
§  Exchange Patches
§  Branches are separate
entities
Joe	
  
Curly	
  
Moe	
  
“Blessed”	
  
Repo	
  
Slide 18 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Distributed Version Control Software
Bazaar	
  
hRp://git-­‐scm.com/	
  
Slide 19 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Git
§  Started in 2005 by Linus Torvalds to support Linux
Kernel Development
§  Inspired by BitKeeper and Monotone
Slide 20 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Using Git
Slide 21 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Slide 22 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Initialize a Repository
§  In SVN:
§  HOWTO: Hosting a Subversion Repository
§  http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/
§  In Git:
§  https://kovshenin.com/2011/howto-remote-shared-git-repository/
git init
-OR-
git init –bare test-repo.git
Slide 23 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
How to retrieve a repository
§  In SVN:
§  In Git:
svn co https://host.com/path/repo
git clone https://host.com/path/repo.git
-OR-
git clone user@server:path/repo.git
Slide 24 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
How to add files
§  In SVN:
§  In Git:
svn add test-file.txt
git add test-file.txt
Slide 25 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
How to commit changes
§  In SVN:
§  In Git:
svn commit –m "Some Message"
git commit –m "Some Message"
Slide 26 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
How to push changes
§  In SVN:
§  Doesn’t make sense as it’s not distributed
§  In Git:
git push
Slide 27 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
How to branch
§  In SVN:
§  In Git:
svn copy http://svn.example.com/repos/calc/trunk 
http://svn.example.com/repos/calc/branches/my-calc-branch 
-m "Creating a private branch of /calc/trunk."
git branch my-calc-branch
-OR-
git checkout –b my-calc-branch # Takes you to the new branch
Slide 28 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
How to change branches
§  In SVN:
§  In Git:
cd path/to/branch
git checkout my-calc-branch
Slide 29 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
How to merge
§  In SVN:
§  In Git:
cd /path/to/repo/trunk
svn merge ../branches/my_branch/ # Merges changes in working copy
svn commit -m "Merge my_branch"
cd /path/to/repo
git merge my-branch # Merges Local Branches
git push # Pushes merge out to remote
Slide 30 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Slide 31 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Release Method: Environment Based
Development	
   Test	
  
ProducHon	
  
(trunk)	
  
F2	
   F3	
  F1	
  
Slide 32 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Centralized Workflow
§  Commits are sequential
§  All users commit to the same branch
§  No guarantee of what is “production-
ready”
§  Tagging not very useful
Slide 33 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Centralized Workflow (Cont.)
§  Developer Checks out
§  Makes Changes
§  Commits
§  Some point in the future code ends up in development
Slide 34 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Feature Workflow
§  Developers create branches for each
feature
§  Features don’t get merged until it’s
time for production
 
Slide 35 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Feature Workflow (Cont.)
§  Developer branches from master/trunk
§  Makes changes
Slide 36 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Release-based “Driessen” Workflow
§  Two primary branches
§  Production
§  Development
§  Transient Personal Branches
§  Tagging Used Heavily
§  Manages for Hot Fixes
§  Release Branches
Credit:	
  Vincent	
  Driessen	
  
Slide 37 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Release-based Workflow (Cont.)
§  Starts similar to feature workflow
§  Features branches from develop
§  Hotfixes from master
§  Upon feature completion, merged back into develop
§  Once ready to do a release create a branch
§  Only perform bug fixes
§  Release to production/master
Slide 38 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Slide 39 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Where?
§  Where should deployments come from?
Slide 40 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
When?
§  Disclaimer: Established processes may prevent
changing the timing of releases.
§  How often should I release?
§  When during the day should I release?
Slide 41 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Slide 42 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Purpose Driven Separation
§  Branch Types
§  Feature – “feature/HAD/00001-some-new-feature”
§  Bug – “bug/HAD/010000-blue-screen-of-death-is-red”
§  Spike / Experimental
§  “spike/HAD/radical-new-things”
§  “exp/HAD/something-really-awesome”
§  Release – “release/1.5” or “release/20150507.1”
§  Tagging – “1.4” or “20150808.1”
Slide 43 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Slide 44 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Finding Time
§  Transition Slowly
§  Implement portions where possible
§  Start with keeping all new development into separate
Slide 45 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Get Familiar With Tools and Process
§  SVN Tutorials
§  http://www.tutorialspoint.com/svn/
§  GIT Book
§  http://git-scm.com/book/en/v2/
Slide 46 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Perform an Exercise
§  Go through a practice bug fix and feature release.
§  Create Branches
§  Make gimmick changes
§  Go through the steps of a release
§  Code Change
§  Code Review
§  Release and merge
Slide 47 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Introduce it at a team meeting
§  This can be useful whether or not the release process is
decided at a team level.
Slide 48 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Try process with a real change
§  Be diligent about the process
§  Follow it to production
§  Review the hiccups and try to iron them out.
§  Slowly add it to more changes.
Slide 49 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Do a team exercise
§  If this exercise can show improved efficiency and code
quality
Slide 50 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Slide 51 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Contact Information
§  Harold Dost III
§  Senior Consultant
§  @hdost
§  harold.dost@raastech.com
Slide 52 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
Resources
§  Atlassian. (2015). Comparing Workflows. Retrieved 2015, from Atlassian:
https://www.atlassian.com/git/tutorials/comparing-workflows/
§  Bansal, N. (2011). HOWTO: Hosting a Subversion Repository. Retrieved
2015, from University Of Toronto:
http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/
§  Driessen, V. (2010). A successful Git branching model. Retrieved 2015, from
Nvie: http://nvie.com/posts/a-successful-git-branching-model/
§  Git SCM. (2014). Git Book. Retrieved 2015, from Git SCM:
http://git-scm.com/book/en/v2/
§  Kovshenin, K. (2011). How To Create a Remote Shared Git Repository.
Retrieved 2015, from Kovshenin:
https://kovshenin.com/2011/howto-remote-shared-git-repository/
§  Tutorials Point. (2014). SVN Tutorial. Retrieved 2015, from Tutorials Point:
http://www.tutorialspoint.com/svn/

More Related Content

What's hot

White Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release CycleWhite Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release Cycle
Perforce
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
Mike McGarr
 
Microservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and JenkinsMicroservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and Jenkins
Rafael Benevides
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
Daniel Oh
 
DevOps and Continuous Delivery Reference Architectures - Volume 2
DevOps and Continuous Delivery Reference Architectures - Volume 2DevOps and Continuous Delivery Reference Architectures - Volume 2
DevOps and Continuous Delivery Reference Architectures - Volume 2
Sonatype
 
Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3
Michael Plöd
 
Architecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in TechnologyArchitecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in Technology
Daniel Barker
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOps
TechWell
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Josiah Renaudin
 
Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"
Emerasoft, solutions to collaborate
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in Eclipse
Chris Aniszczyk
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project
Symphony Software Foundation
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
Mike McGarr
 
Azul Systems open source guide
Azul Systems open source guideAzul Systems open source guide
Azul Systems open source guide
Azul Systems Inc.
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
Ethan Ram
 
Version control with git
Version control with gitVersion control with git
Version control with git
Purav Gandhi
 
Git and Gerrit Code Review - Tech Talk - 2010_09_23
Git and Gerrit Code Review - Tech Talk - 2010_09_23Git and Gerrit Code Review - Tech Talk - 2010_09_23
Git and Gerrit Code Review - Tech Talk - 2010_09_23
msohn
 
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
Symphony Software Foundation
 
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
msohn
 
JJHWS Responsibilites
JJHWS ResponsibilitesJJHWS Responsibilites
JJHWS ResponsibilitesRyan LaPensee
 

What's hot (20)

White Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release CycleWhite Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release Cycle
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Microservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and JenkinsMicroservices with Kubernetes, Docker, and Jenkins
Microservices with Kubernetes, Docker, and Jenkins
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
 
DevOps and Continuous Delivery Reference Architectures - Volume 2
DevOps and Continuous Delivery Reference Architectures - Volume 2DevOps and Continuous Delivery Reference Architectures - Volume 2
DevOps and Continuous Delivery Reference Architectures - Volume 2
 
Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3Migrating from Grails 2 to Grails 3
Migrating from Grails 2 to Grails 3
 
Architecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in TechnologyArchitecting The Future - WeRise Women in Technology
Architecting The Future - WeRise Women in Technology
 
Continuous Testing in DevOps
Continuous Testing in DevOpsContinuous Testing in DevOps
Continuous Testing in DevOps
 
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook QualityContinuous Integration Testing Techniques to Improve Chef Cookbook Quality
Continuous Integration Testing Techniques to Improve Chef Cookbook Quality
 
Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"Webinar: "Continuous Delivery with Jenkins"
Webinar: "Continuous Delivery with Jenkins"
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in Eclipse
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Azul Systems open source guide
Azul Systems open source guideAzul Systems open source guide
Azul Systems open source guide
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
Version control with git
Version control with gitVersion control with git
Version control with git
 
Git and Gerrit Code Review - Tech Talk - 2010_09_23
Git and Gerrit Code Review - Tech Talk - 2010_09_23Git and Gerrit Code Review - Tech Talk - 2010_09_23
Git and Gerrit Code Review - Tech Talk - 2010_09_23
 
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
 
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
 
JJHWS Responsibilites
JJHWS ResponsibilitesJJHWS Responsibilites
JJHWS Responsibilites
 

Similar to Version Uncontrolled! How to Manage Your Version Control

Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010
Pursuit Consulting
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
Gilad Garon
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version ControlNowell Strite
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"
Fwdays
 
Oracle WebLogic Server: Remote Monitoring and Management
Oracle WebLogic Server: Remote Monitoring and ManagementOracle WebLogic Server: Remote Monitoring and Management
Oracle WebLogic Server: Remote Monitoring and Management
Revelation Technologies
 
Walk through an enterprise Linux migration
Walk through an enterprise Linux migrationWalk through an enterprise Linux migration
Walk through an enterprise Linux migration
Rogue Wave Software
 
Understanding and Developing Web Services - For DBAs and Developers
Understanding and Developing Web Services - For DBAs and DevelopersUnderstanding and Developing Web Services - For DBAs and Developers
Understanding and Developing Web Services - For DBAs and Developers
Revelation Technologies
 
CloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfCloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdf
ahjensen
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
DevOps.com
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Clark Everetts
 
Version control
Version controlVersion control
Version control
Sean Hayes
 
Introduction to R for Big Data Analysis
Introduction to R for Big Data AnalysisIntroduction to R for Big Data Analysis
Introduction to R for Big Data Analysis
Revelation Technologies
 
Understanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database DevelopersUnderstanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database Developers
Revelation Technologies
 
TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)
Inflectra
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
Roberto Pérez Alcolea
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
Dan Hinojosa
 
DSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
DSAG Tech Days 2018 - DevOps in SAP ABAP LandscapesDSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
DSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
Sascha Junkert
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
InCycleSoftware
 
An intro to git
An intro to gitAn intro to git
An intro to git
Dan Shrader
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Per Henrik Lausten
 

Similar to Version Uncontrolled! How to Manage Your Version Control (20)

Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010
 
JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"
 
Oracle WebLogic Server: Remote Monitoring and Management
Oracle WebLogic Server: Remote Monitoring and ManagementOracle WebLogic Server: Remote Monitoring and Management
Oracle WebLogic Server: Remote Monitoring and Management
 
Walk through an enterprise Linux migration
Walk through an enterprise Linux migrationWalk through an enterprise Linux migration
Walk through an enterprise Linux migration
 
Understanding and Developing Web Services - For DBAs and Developers
Understanding and Developing Web Services - For DBAs and DevelopersUnderstanding and Developing Web Services - For DBAs and Developers
Understanding and Developing Web Services - For DBAs and Developers
 
CloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfCloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdf
 
Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024Analysis of-quality-of-pkgs-in-packagist-univ-20171024
Analysis of-quality-of-pkgs-in-packagist-univ-20171024
 
Version control
Version controlVersion control
Version control
 
Introduction to R for Big Data Analysis
Introduction to R for Big Data AnalysisIntroduction to R for Big Data Analysis
Introduction to R for Big Data Analysis
 
Understanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database DevelopersUnderstanding and Developing Web Services: For DBAs and Database Developers
Understanding and Developing Web Services: For DBAs and Database Developers
 
TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
 
DSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
DSAG Tech Days 2018 - DevOps in SAP ABAP LandscapesDSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
DSAG Tech Days 2018 - DevOps in SAP ABAP Landscapes
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
An intro to git
An intro to gitAn intro to git
An intro to git
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 

More from Revelation Technologies

Operating System Security in the Cloud
Operating System Security in the CloudOperating System Security in the Cloud
Operating System Security in the Cloud
Revelation Technologies
 
Getting Started with Terraform
Getting Started with TerraformGetting Started with Terraform
Getting Started with Terraform
Revelation Technologies
 
Getting Started with API Management
Getting Started with API ManagementGetting Started with API Management
Getting Started with API Management
Revelation Technologies
 
Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
Automating Cloud Operations: Everything You Wanted to Know about cURL and RESTAutomating Cloud Operations: Everything You Wanted to Know about cURL and REST
Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
Revelation Technologies
 
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudGetting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Revelation Technologies
 
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Revelation Technologies
 
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices FrameworkIntroducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Revelation Technologies
 
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Revelation Technologies
 
PTK Issue 72: Delivering a Platform on Demand
PTK Issue 72: Delivering a Platform on DemandPTK Issue 72: Delivering a Platform on Demand
PTK Issue 72: Delivering a Platform on Demand
Revelation Technologies
 
PTK Issue 71: The Compute Cloud Performance Showdown
PTK Issue 71: The Compute Cloud Performance ShowdownPTK Issue 71: The Compute Cloud Performance Showdown
PTK Issue 71: The Compute Cloud Performance Showdown
Revelation Technologies
 
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Revelation Technologies
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Revelation Technologies
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Revelation Technologies
 
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to KnowThe Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
Revelation Technologies
 
Cloud Integration Strategy
Cloud Integration StrategyCloud Integration Strategy
Cloud Integration Strategy
Revelation Technologies
 
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
Compute Cloud  Performance Showdown: Amazon Web Services, Oracle  Cloud, IBM ...Compute Cloud  Performance Showdown: Amazon Web Services, Oracle  Cloud, IBM ...
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
Revelation Technologies
 
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the CloudSecuring your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Revelation Technologies
 
Hands-On with Oracle SOA Cloud Service
Hands-On with Oracle SOA Cloud ServiceHands-On with Oracle SOA Cloud Service
Hands-On with Oracle SOA Cloud Service
Revelation Technologies
 
Oracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting StartedOracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting Started
Revelation Technologies
 
Developing Web Services from Scratch - For DBAs and Database Developers
Developing Web Services from Scratch - For DBAs and Database DevelopersDeveloping Web Services from Scratch - For DBAs and Database Developers
Developing Web Services from Scratch - For DBAs and Database Developers
Revelation Technologies
 

More from Revelation Technologies (20)

Operating System Security in the Cloud
Operating System Security in the CloudOperating System Security in the Cloud
Operating System Security in the Cloud
 
Getting Started with Terraform
Getting Started with TerraformGetting Started with Terraform
Getting Started with Terraform
 
Getting Started with API Management
Getting Started with API ManagementGetting Started with API Management
Getting Started with API Management
 
Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
Automating Cloud Operations: Everything You Wanted to Know about cURL and RESTAutomating Cloud Operations: Everything You Wanted to Know about cURL and REST
Automating Cloud Operations: Everything You Wanted to Know about cURL and REST
 
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the CloudGetting Started with API Management – Why It's Needed On-prem and in the Cloud
Getting Started with API Management – Why It's Needed On-prem and in the Cloud
 
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...Automating Cloud Operations - Everything you wanted to know about cURL and RE...
Automating Cloud Operations - Everything you wanted to know about cURL and RE...
 
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices FrameworkIntroducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
Introducing the Oracle Cloud Infrastructure (OCI) Best Practices Framework
 
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
 
PTK Issue 72: Delivering a Platform on Demand
PTK Issue 72: Delivering a Platform on DemandPTK Issue 72: Delivering a Platform on Demand
PTK Issue 72: Delivering a Platform on Demand
 
PTK Issue 71: The Compute Cloud Performance Showdown
PTK Issue 71: The Compute Cloud Performance ShowdownPTK Issue 71: The Compute Cloud Performance Showdown
PTK Issue 71: The Compute Cloud Performance Showdown
 
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
Everything You Need to Know About the Microsoft Azure and Oracle Cloud Interc...
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
 
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to KnowThe Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
The Microsoft Azure and Oracle Cloud Interconnect Everything You Need to Know
 
Cloud Integration Strategy
Cloud Integration StrategyCloud Integration Strategy
Cloud Integration Strategy
 
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
Compute Cloud  Performance Showdown: Amazon Web Services, Oracle  Cloud, IBM ...Compute Cloud  Performance Showdown: Amazon Web Services, Oracle  Cloud, IBM ...
Compute Cloud Performance Showdown: Amazon Web Services, Oracle Cloud, IBM ...
 
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the CloudSecuring your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
Securing your Oracle Fusion Middleware Environment, On-Prem and in the Cloud
 
Hands-On with Oracle SOA Cloud Service
Hands-On with Oracle SOA Cloud ServiceHands-On with Oracle SOA Cloud Service
Hands-On with Oracle SOA Cloud Service
 
Oracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting StartedOracle BPM Suite Development: Getting Started
Oracle BPM Suite Development: Getting Started
 
Developing Web Services from Scratch - For DBAs and Database Developers
Developing Web Services from Scratch - For DBAs and Database DevelopersDeveloping Web Services from Scratch - For DBAs and Database Developers
Developing Web Services from Scratch - For DBAs and Database Developers
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Version Uncontrolled! How to Manage Your Version Control

  • 1. Version Uncontrolled! How to Manage Your Version Control Session  217   Tuesday,  May  6,2015   10:50  –  11:30  am   Track  2   Raastech, Inc. 2201 Cooperative Way, Suite 600 Herndon, VA 20171 +1-703-884-2223 info@raastech.com
  • 2. Slide 2 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech About Me §  Harold Dost III @hdost §  6+ years of Oracle Middleware experience §  OCE (SOA Foundation Practitioner) §  Oracle ACE Associate §  From Michigan §  blog.raastech.com
  • 3. Slide 3 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech About Raastech §  Small systems integrator founded in 2009 §  Headquartered in the Washington DC area §  Specializes in Oracle Fusion Middleware §  Oracle Platinum Partner & Reseller §  Oracle SOA Specialized §  100% of consultants are Oracle certified §  100% of consultants present at major Oracle conferences §  100% of consultants have published books, whitepapers, or articles §  Oracle SOA Specialized – 1 in 1,500 worldwide §  Oracle Platinum Partner – 1 in 3,000 worldwide
  • 4. Slide 4 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Outline 1.  Introduction 2.  Version Control Systems 3.  Useful Version Control Commands 4.  Workflows 5.  The Deployment Cycle 6.  Branching 7.  Getting Your Team On Board 8.  Questions & Answers
  • 5. Slide 5 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
  • 6. Slide 6 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Bias §  I am biased towards Git §  I have done my best to be neutral Git Factoids §  Git  is  a  distributed  revision  control  system  with  an  emphasis  on  speed,  data  integrity,   and  support  for  distributed,  non-­‐linear  workflows.   §  Git   was   iniHally   designed   and   developed   by   Linus   Torvalds   for   Linux   kernel   development  in  2005   §  Git  is  the  most  widely  adopted  version  control  system  for  soLware  development.   §  Git  is  freely  distributed  under  the  terms  of  the  GNU  General  Public  License  v2.  
  • 7. Slide 7 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Typical Large Corp Release Method §  Developer creates code §  Developer unit tests code §  Code may get tested by 3rd party §  Code may get reviewed by 3rd party §  Code may get tested in a secondary environment to ensure setups are correct §  Code gets deployed to Production §  Spot checks may be done
  • 8. Slide 8 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Where is the code? §  Often developer commits code to trunk repeatedly
  • 9. Slide 9 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Advantages §  Easy!
  • 10. Slide 10 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Pitfalls §  Not Simple §  http://www.infoq.com/presentations/Simple-Made-Easy §  http://www.slideshare.net/evandrix/simple-made-easy §  Need people to remember or record in a tool which code version is to be deployed §  After deployment version may be all but lost §  Could have tools in place, but those require additional maintenance §  Places tracking outside of developer responsibility
  • 11. Slide 11 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
  • 12. Slide 12 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Types of Version Control §  Centralized §  Distributed
  • 13. Slide 13 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Centralized Version Control §  Relies on single repository §  People check-out and check-in documents §  Some locking may be used to prevent conflicts §  Branches treated like folders Repository   Curly   Larry   Moe  
  • 14. Slide 14 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Corporate Behavior: Centralized §  Merges are feared §  Tendency towards committing only when absolutely necessary §  Commits to trunk/master for everything
  • 15. Slide 15 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Centralized Version Control Software Subversion  (SVN)   hRp://subversion.Hgris.org   Team  Founda=on  Server  (TFS)   hRps://msdn.microsoL.com/en-­‐us/vstudio/ff637362.aspx   Concurrent  Versioning  System  (CVS)   hRp://www.nongnu.org/cvs/   Perforce(P4)   hRp://www.perforce.com   ClearCase   hRp://www-­‐03.ibm.com/soLware/products/en/clearcase  
  • 16. Slide 16 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech SVN §  Initial Release in 2000 §  An Apache Foundation Project §  Mostly compatible successor to CVS
  • 17. Slide 17 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Distributed Version Control §  Repositories are local §  Peer-to-Peer §  Exchange Patches §  Branches are separate entities Joe   Curly   Moe   “Blessed”   Repo  
  • 18. Slide 18 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Distributed Version Control Software Bazaar   hRp://git-­‐scm.com/  
  • 19. Slide 19 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Git §  Started in 2005 by Linus Torvalds to support Linux Kernel Development §  Inspired by BitKeeper and Monotone
  • 20. Slide 20 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Using Git
  • 21. Slide 21 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
  • 22. Slide 22 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Initialize a Repository §  In SVN: §  HOWTO: Hosting a Subversion Repository §  http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/ §  In Git: §  https://kovshenin.com/2011/howto-remote-shared-git-repository/ git init -OR- git init –bare test-repo.git
  • 23. Slide 23 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech How to retrieve a repository §  In SVN: §  In Git: svn co https://host.com/path/repo git clone https://host.com/path/repo.git -OR- git clone user@server:path/repo.git
  • 24. Slide 24 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech How to add files §  In SVN: §  In Git: svn add test-file.txt git add test-file.txt
  • 25. Slide 25 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech How to commit changes §  In SVN: §  In Git: svn commit –m "Some Message" git commit –m "Some Message"
  • 26. Slide 26 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech How to push changes §  In SVN: §  Doesn’t make sense as it’s not distributed §  In Git: git push
  • 27. Slide 27 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech How to branch §  In SVN: §  In Git: svn copy http://svn.example.com/repos/calc/trunk http://svn.example.com/repos/calc/branches/my-calc-branch -m "Creating a private branch of /calc/trunk." git branch my-calc-branch -OR- git checkout –b my-calc-branch # Takes you to the new branch
  • 28. Slide 28 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech How to change branches §  In SVN: §  In Git: cd path/to/branch git checkout my-calc-branch
  • 29. Slide 29 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech How to merge §  In SVN: §  In Git: cd /path/to/repo/trunk svn merge ../branches/my_branch/ # Merges changes in working copy svn commit -m "Merge my_branch" cd /path/to/repo git merge my-branch # Merges Local Branches git push # Pushes merge out to remote
  • 30. Slide 30 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
  • 31. Slide 31 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Release Method: Environment Based Development   Test   ProducHon   (trunk)   F2   F3  F1  
  • 32. Slide 32 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Centralized Workflow §  Commits are sequential §  All users commit to the same branch §  No guarantee of what is “production- ready” §  Tagging not very useful
  • 33. Slide 33 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Centralized Workflow (Cont.) §  Developer Checks out §  Makes Changes §  Commits §  Some point in the future code ends up in development
  • 34. Slide 34 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Feature Workflow §  Developers create branches for each feature §  Features don’t get merged until it’s time for production  
  • 35. Slide 35 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Feature Workflow (Cont.) §  Developer branches from master/trunk §  Makes changes
  • 36. Slide 36 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Release-based “Driessen” Workflow §  Two primary branches §  Production §  Development §  Transient Personal Branches §  Tagging Used Heavily §  Manages for Hot Fixes §  Release Branches Credit:  Vincent  Driessen  
  • 37. Slide 37 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Release-based Workflow (Cont.) §  Starts similar to feature workflow §  Features branches from develop §  Hotfixes from master §  Upon feature completion, merged back into develop §  Once ready to do a release create a branch §  Only perform bug fixes §  Release to production/master
  • 38. Slide 38 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
  • 39. Slide 39 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Where? §  Where should deployments come from?
  • 40. Slide 40 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech When? §  Disclaimer: Established processes may prevent changing the timing of releases. §  How often should I release? §  When during the day should I release?
  • 41. Slide 41 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
  • 42. Slide 42 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Purpose Driven Separation §  Branch Types §  Feature – “feature/HAD/00001-some-new-feature” §  Bug – “bug/HAD/010000-blue-screen-of-death-is-red” §  Spike / Experimental §  “spike/HAD/radical-new-things” §  “exp/HAD/something-really-awesome” §  Release – “release/1.5” or “release/20150507.1” §  Tagging – “1.4” or “20150808.1”
  • 43. Slide 43 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
  • 44. Slide 44 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Finding Time §  Transition Slowly §  Implement portions where possible §  Start with keeping all new development into separate
  • 45. Slide 45 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Get Familiar With Tools and Process §  SVN Tutorials §  http://www.tutorialspoint.com/svn/ §  GIT Book §  http://git-scm.com/book/en/v2/
  • 46. Slide 46 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Perform an Exercise §  Go through a practice bug fix and feature release. §  Create Branches §  Make gimmick changes §  Go through the steps of a release §  Code Change §  Code Review §  Release and merge
  • 47. Slide 47 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Introduce it at a team meeting §  This can be useful whether or not the release process is decided at a team level.
  • 48. Slide 48 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Try process with a real change §  Be diligent about the process §  Follow it to production §  Review the hiccups and try to iron them out. §  Slowly add it to more changes.
  • 49. Slide 49 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Do a team exercise §  If this exercise can show improved efficiency and code quality
  • 50. Slide 50 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech
  • 51. Slide 51 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Contact Information §  Harold Dost III §  Senior Consultant §  @hdost §  harold.dost@raastech.com
  • 52. Slide 52 of 52© Raastech, Inc. 2015 | All rights reserved.@Raastech Resources §  Atlassian. (2015). Comparing Workflows. Retrieved 2015, from Atlassian: https://www.atlassian.com/git/tutorials/comparing-workflows/ §  Bansal, N. (2011). HOWTO: Hosting a Subversion Repository. Retrieved 2015, from University Of Toronto: http://queens.db.toronto.edu/~nilesh/linux/subversion-howto/ §  Driessen, V. (2010). A successful Git branching model. Retrieved 2015, from Nvie: http://nvie.com/posts/a-successful-git-branching-model/ §  Git SCM. (2014). Git Book. Retrieved 2015, from Git SCM: http://git-scm.com/book/en/v2/ §  Kovshenin, K. (2011). How To Create a Remote Shared Git Repository. Retrieved 2015, from Kovshenin: https://kovshenin.com/2011/howto-remote-shared-git-repository/ §  Tutorials Point. (2014). SVN Tutorial. Retrieved 2015, from Tutorials Point: http://www.tutorialspoint.com/svn/