SlideShare a Scribd company logo
1 of 39
Faster and smarter
development with Git
Vince Chu
W/S Web Developer,
Osgoode ITS
Raj Perera
W/S Computer Operations
Technician, Osgoode ITS
Abstract
With mobile devices and an Internet filled with applications,
users expect delivery of new applications and services,
improvements and maintenance to be quick and seamless.
Distributed version control systems are one such class of tools
that development teams are adopting to better streamline their
process and workflow to meet these user needs.
This talk is a practical exploration of distributed version control
systems, particularly Git. We will share Osgoode ITS's
experience introducing these technologies to benefit in-house
development and operations, and its future plans to further
utilize Git to enhance productivity.
Who are we?
Vince Chu
W/S Web Developer,
Osgoode ITS
Assist in the development and
maintenance of web
applications at Osgoode ITS,
including the main website,
blogs, digital signage, web
application middleware and
other custom software
development projects.
Raj Perera
W/S Computer Operations
Technician, Osgoode ITS
Assist in the provisioning,
configuring and securing all
physical and virtual servers and
appliances at Osgoode ITS.
Assist in planning future
network infrastructure
enhancements and maintaining
current infrastructure.
Agenda +
Objectives
About a year and half ago at Osgoode ITS, we started
a pilot initiative to use and migrate some of our
development projects to Git, and we want to share
with you some things we’ve learned so far in the
process.
Agenda +
Objectives
 Introduction to Version Control
 What is Git?
 Why use Git?
 Share some tools and resources
 End-to-end Demo
 Discuss best practices
 Explore deployment options: In the Cloud or On-premise
 Share what we’ve learned at Osgoode ITS using Git
Create things Edit thingsSave things Save things again
As knowledge
workers
Developers, designers,
content creators, and
others….
Our daily tasks:
…What changes were made?
…When were they made?
…Why were they made?
If we save
things again
and again…
How we know…
If we save
things again
and again…
History Tracking
We often collaborate as a team
Changing the same code, resources, assets… at the same
As knowledge
workers
Developers, designers,
content creators, and
others….
…Know what changes were made for each?
…Combine our work together?
…Know who, when or why a change was made?
…Which is the latest copy?
If everyone
works on the
same files…
How can we…
If everyone
works on the
same files…
If everyone
works on the
same files…
If everyone
works on the
same files…
A recipe for disaster!
If everyone
works on the
same files…
Before
Version
Control
Attempt 1
Emailing copies of the project
Before
Version
Control
Attempt 2
Saving different copies with different names
Before
Version
Control
Attempt 3
Just edit it on production
Version
Control
 Version control is a system
that records changes to a
file or set of files over time
so that you can recall
specific versions later.
Manages of changes to
documents, computer
programs, large web sites,
and other collections of
information.
 Takes snapshots of the files
What is Git?
Version Control
 Git is a distributed version control system with an emphasis
on speed, data integrity, and support for distributed, non-
linear workflows.
 Each user clones a copy of the entire project, repository, to
their own computer, makes changes locally, saves, commits,
the changes and when ready, publishes or pushes out the
changes to a remote server for the rest of the team access or
pull from.
Why Git?
Compared to traditional
version control systems
 Unlike traditional version control systems, Git is not a
centralized system.
 No canonical, reference copy of the codebase exists by
default; only working copies.
 Common operations (such as commits, viewing history, and
reverting changes) are fast, because there is no need to
communicate with a central server.
 Communication is only necessary when sharing changes
among other peers.
 Each working copy effectively functions as a remote backup
of the codebase and of its change-history, protecting against
data loss.
Workflows
Git-flow model
Work in
progress on
“next release”
Next
production
release
Next
production
release
Next
production
release
develop master
A branch is like an
alternate universe for
your project files.
Workflows
Git-flow model
Work in
progress on
“next release”
Next
production
release
Next
production
release
Next
production
release
develop master
develop
feature
branches
Workflows
Git-flow model
Work in
progress on
“next release”
Next
production
release
Next
production
release
Next
production
release
develop master
QA : OK!
QA : OK!
QA : OK!
Workflows
Github-flow
1. Branch
2. Code
3. Pull Request
4. Discuss
5. Merge
Tools and
Utilities
 Free!
 Open source…
 Available on all major platforms.
Tools and
Utilities
Command-line Ninja?
Thankfully, not anymore!
Tools and
Utilities
Hurray! GUI
SourceTree (Windows, Mac)
Tools and
Utilities
Hurray! GUI
SourceTree (Windows, Mac)
Github (Windows/Mac)
Tower (Mac)
TortoiseGit (Windows)
SmartGit (Windows/Mac/Linux)
Tools and
Utilities
Modern Git-Hosting Platforms
Web Interface
Permission Management
Discussion Platform
Issue Tracking
Project Wiki
Tools and
Utilities
Self-HostedCloud-based
Free for public projects
Free private projects with
maximum 5 users
GitLab CE (Free!)
Active Directory Integration
Hosting the Code?
At Osgoode
Artist In Residence Digital
Project 2013-2014
In May 2014, working with Cindy
Blazevic, Osgoode’s inaugural Artist
in Residence, we created a
responsive, mobile-first web
application that presents the stories
of the inmates and workers at the
Kingston Penitentiary with imagery,
recorded interviews and videos back-
dropped by an interactive map of the
prison.
At Osgoode
WordPress
Operations
 Rollback from failed upgrades/deployments
 Data file integrity
 Easy to manage DEV -> STAGE -> PROD workflow
Best Practice
1. Commit early. Commit often.
2. Meaningful commit messages.
Best Practice
1. Commit early. Commit often.
2. Meaningful commit messages.
3. Agree on a workflow
 Branching and a merging model
Lessons
Learned
 Git works great text documents
 But not so well for images, audio, videos, etc… (User content)
 Database is not tracked
 Commit messages are not documentation
 Smaller commit and modular programming are better
 Branching for experimentation
Commit early. Commit often
Lessons
Learned
 Git works great text documents
 But not so well for images, audio, videos, etc… (User content)
 Database is not tracked
 Commit messages are not documentation
 Smaller commit and modular programming are better
 Branching for experimentation
Commit early. Commit often
Future Plans
 Migrate all websites and blogs to Git
 Explore Large File Support (LFS) Extension to help solve issues
involving user content files.
 Team wide adoption
 Explore options for integrating issue tracking and project
management tools like Jira, Confluence and Trello with Git
 Explore continuous integration for testing and seamless
updates across development and production environments
 Explore snapshotting of the database
Questions
@rajiteh @vincewchu
Thanks

More Related Content

Recently uploaded

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Recently uploaded (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

York IT Day 2015: Talk - Faster and Smarter Development with Git

  • 1. Faster and smarter development with Git Vince Chu W/S Web Developer, Osgoode ITS Raj Perera W/S Computer Operations Technician, Osgoode ITS
  • 2. Abstract With mobile devices and an Internet filled with applications, users expect delivery of new applications and services, improvements and maintenance to be quick and seamless. Distributed version control systems are one such class of tools that development teams are adopting to better streamline their process and workflow to meet these user needs. This talk is a practical exploration of distributed version control systems, particularly Git. We will share Osgoode ITS's experience introducing these technologies to benefit in-house development and operations, and its future plans to further utilize Git to enhance productivity.
  • 3. Who are we? Vince Chu W/S Web Developer, Osgoode ITS Assist in the development and maintenance of web applications at Osgoode ITS, including the main website, blogs, digital signage, web application middleware and other custom software development projects. Raj Perera W/S Computer Operations Technician, Osgoode ITS Assist in the provisioning, configuring and securing all physical and virtual servers and appliances at Osgoode ITS. Assist in planning future network infrastructure enhancements and maintaining current infrastructure.
  • 4. Agenda + Objectives About a year and half ago at Osgoode ITS, we started a pilot initiative to use and migrate some of our development projects to Git, and we want to share with you some things we’ve learned so far in the process.
  • 5. Agenda + Objectives  Introduction to Version Control  What is Git?  Why use Git?  Share some tools and resources  End-to-end Demo  Discuss best practices  Explore deployment options: In the Cloud or On-premise  Share what we’ve learned at Osgoode ITS using Git
  • 6. Create things Edit thingsSave things Save things again As knowledge workers Developers, designers, content creators, and others…. Our daily tasks:
  • 7. …What changes were made? …When were they made? …Why were they made? If we save things again and again… How we know…
  • 8. If we save things again and again… History Tracking
  • 9. We often collaborate as a team Changing the same code, resources, assets… at the same As knowledge workers Developers, designers, content creators, and others….
  • 10. …Know what changes were made for each? …Combine our work together? …Know who, when or why a change was made? …Which is the latest copy? If everyone works on the same files… How can we…
  • 11. If everyone works on the same files…
  • 12. If everyone works on the same files…
  • 13. If everyone works on the same files…
  • 14. A recipe for disaster! If everyone works on the same files…
  • 18. Version Control  Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. Manages of changes to documents, computer programs, large web sites, and other collections of information.  Takes snapshots of the files
  • 19. What is Git? Version Control  Git is a distributed version control system with an emphasis on speed, data integrity, and support for distributed, non- linear workflows.  Each user clones a copy of the entire project, repository, to their own computer, makes changes locally, saves, commits, the changes and when ready, publishes or pushes out the changes to a remote server for the rest of the team access or pull from.
  • 20. Why Git? Compared to traditional version control systems  Unlike traditional version control systems, Git is not a centralized system.  No canonical, reference copy of the codebase exists by default; only working copies.  Common operations (such as commits, viewing history, and reverting changes) are fast, because there is no need to communicate with a central server.  Communication is only necessary when sharing changes among other peers.  Each working copy effectively functions as a remote backup of the codebase and of its change-history, protecting against data loss.
  • 21. Workflows Git-flow model Work in progress on “next release” Next production release Next production release Next production release develop master A branch is like an alternate universe for your project files.
  • 22. Workflows Git-flow model Work in progress on “next release” Next production release Next production release Next production release develop master develop feature branches
  • 23. Workflows Git-flow model Work in progress on “next release” Next production release Next production release Next production release develop master QA : OK! QA : OK! QA : OK!
  • 24. Workflows Github-flow 1. Branch 2. Code 3. Pull Request 4. Discuss 5. Merge
  • 25. Tools and Utilities  Free!  Open source…  Available on all major platforms.
  • 28. Tools and Utilities Hurray! GUI SourceTree (Windows, Mac) Github (Windows/Mac) Tower (Mac) TortoiseGit (Windows) SmartGit (Windows/Mac/Linux)
  • 29. Tools and Utilities Modern Git-Hosting Platforms Web Interface Permission Management Discussion Platform Issue Tracking Project Wiki
  • 30. Tools and Utilities Self-HostedCloud-based Free for public projects Free private projects with maximum 5 users GitLab CE (Free!) Active Directory Integration Hosting the Code?
  • 31. At Osgoode Artist In Residence Digital Project 2013-2014 In May 2014, working with Cindy Blazevic, Osgoode’s inaugural Artist in Residence, we created a responsive, mobile-first web application that presents the stories of the inmates and workers at the Kingston Penitentiary with imagery, recorded interviews and videos back- dropped by an interactive map of the prison.
  • 32. At Osgoode WordPress Operations  Rollback from failed upgrades/deployments  Data file integrity  Easy to manage DEV -> STAGE -> PROD workflow
  • 33. Best Practice 1. Commit early. Commit often. 2. Meaningful commit messages.
  • 34. Best Practice 1. Commit early. Commit often. 2. Meaningful commit messages. 3. Agree on a workflow  Branching and a merging model
  • 35. Lessons Learned  Git works great text documents  But not so well for images, audio, videos, etc… (User content)  Database is not tracked  Commit messages are not documentation  Smaller commit and modular programming are better  Branching for experimentation Commit early. Commit often
  • 36. Lessons Learned  Git works great text documents  But not so well for images, audio, videos, etc… (User content)  Database is not tracked  Commit messages are not documentation  Smaller commit and modular programming are better  Branching for experimentation Commit early. Commit often
  • 37. Future Plans  Migrate all websites and blogs to Git  Explore Large File Support (LFS) Extension to help solve issues involving user content files.  Team wide adoption  Explore options for integrating issue tracking and project management tools like Jira, Confluence and Trello with Git  Explore continuous integration for testing and seamless updates across development and production environments  Explore snapshotting of the database