SlideShare a Scribd company logo
1 of 21
Avoid Git Bloat and
Submodule Hell
Russ Tremain
Perforce Software

Avoiding Git Bloat
and Submodule Hell
Today’s Presentation

Avoiding Git Bloat
and Submodule Hell
Linus’s Git

Avoiding Git Bloat
and Submodule Hell
Why Developers Like Git

Avoiding Git Bloat
and Submodule Hell
Git, The Sorcerer’s Apprentice

Avoiding Git Bloat
and Submodule Hell
Git in the Real World

Avoiding Git Bloat
and Submodule Hell
Embracing Git in the Enterprise

Avoiding Git Bloat
and Submodule Hell
Git Fusion Allows
Developers to Take Charge

Avoiding Git Bloat
and Submodule Hell
Developers Can Manage
Their Own Imports

Avoiding Git Bloat
and Submodule Hell
Refactoring Git with Perforce Git Fusion
Client
Module

Server
Module

Middleware
Module

Shared
Module

Server
Module

Server
Module

Avoiding Git Bloat
and Submodule Hell

Shared
Module

Shared
Module
How to Remap Your Git Repository

Avoiding Git Bloat
and Submodule Hell
What is Cado?

Avoiding Git Bloat
and Submodule Hell
Diagram of the Demo
Cado
Open Source

Cado Import

Import
view

Team Client
views…

Build

Avoiding Git Bloat
and Submodule Hell

QA

Pubs
DEMO

Avoiding Git Bloat
and Submodule Hell
Managing Outside Contributors

Avoiding Git Bloat
and Submodule Hell
One way to do it…

ACME
D1
D2
D3

SSH
FIREWALL

D1

D2

Avoiding Git Bloat
and Submodule Hell

D3
How we use Git at Perforce

Avoiding Git Bloat
and Submodule Hell
Summary

Avoiding Git Bloat
and Submodule Hell
Resources
Blog, part 1: http://www.perforce.com/blog/130702/using-git-api-perforce-part-1
Blog, part 2: http://www.perforce.com/blog/130722/using-git-api-perforce-part-2
Download Git Fusion: http://perforce.com/product/components/git-fusion
Git Fusion Manual: http://www.perforce.com/perforce/doc.current/manuals/git-fusion/
Cado & VSPMS open source home: http://github.com/russt/
Cado downloads: http://sourceforge.net/projects/cado/files/

Avoiding Git Bloat
and Submodule Hell
THANK YOU!!!
Russ Tremain: rtremain@perforce.com

Avoiding Git Bloat
and Submodule Hell

P4Ideax

Forums

More Related Content

What's hot

Presentasi Android Studio
Presentasi Android StudioPresentasi Android Studio
Presentasi Android StudioFrans Siswanto
 
Fastlane for Androidによる継続的デリバリー
Fastlane for Androidによる継続的デリバリーFastlane for Androidによる継続的デリバリー
Fastlane for Androidによる継続的デリバリーFumiya Nakamura
 
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23msohn
 

What's hot (7)

Presentasi Android Studio
Presentasi Android StudioPresentasi Android Studio
Presentasi Android Studio
 
Presentation1
Presentation1Presentation1
Presentation1
 
Fastlane for Androidによる継続的デリバリー
Fastlane for Androidによる継続的デリバリーFastlane for Androidによる継続的デリバリー
Fastlane for Androidによる継続的デリバリー
 
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
 
Git & github
Git & githubGit & github
Git & github
 
Git of Parts
Git of PartsGit of Parts
Git of Parts
 
Hacktoberfest 2021
Hacktoberfest 2021Hacktoberfest 2021
Hacktoberfest 2021
 

Similar to Avoid Git Bloat and Submodule Hell with Perforce Git Fusion

Git single branch
Git single branchGit single branch
Git single branchCarl Brown
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing selfChen-Tien Tsai
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitRick Umali
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticlePRIYATHAMDARISI
 
Using Github for DSpace development
Using Github for DSpace developmentUsing Github for DSpace development
Using Github for DSpace developmentBram Luyten
 
Introduction to git administration
Introduction to git administrationIntroduction to git administration
Introduction to git administrationShawn Doyle
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
 
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...AmyJune Hineline (she-her)
 
Getting Started with Git
Getting Started with GitGetting Started with Git
Getting Started with GitRick Umali
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)Yeasin Abedin
 
Nyc Code Camp 2010 Git And Github
Nyc Code Camp 2010 Git And GithubNyc Code Camp 2010 Git And Github
Nyc Code Camp 2010 Git And Githubjptoto
 
git-commands-cheat-sheet-infopediya-com.pdf
git-commands-cheat-sheet-infopediya-com.pdfgit-commands-cheat-sheet-infopediya-com.pdf
git-commands-cheat-sheet-infopediya-com.pdfmurad khan
 
Getting Into Git
Getting Into GitGetting Into Git
Getting Into GitRick Umali
 
Of metacello, git, scripting and things
Of metacello, git, scripting and thingsOf metacello, git, scripting and things
Of metacello, git, scripting and thingsESUG
 
Introduction to git and github.pdf
Introduction to git and github.pdfIntroduction to git and github.pdf
Introduction to git and github.pdfSunilShah57
 
GIT training - advanced for software projects
GIT training - advanced for software projectsGIT training - advanced for software projects
GIT training - advanced for software projectsThierry Gayet
 
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -EssentialsJAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentialsjazoon13
 

Similar to Avoid Git Bloat and Submodule Hell with Perforce Git Fusion (20)

Git single branch
Git single branchGit single branch
Git single branch
 
Gerrit tutorial
Gerrit tutorialGerrit tutorial
Gerrit tutorial
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech Article
 
Using Github for DSpace development
Using Github for DSpace developmentUsing Github for DSpace development
Using Github for DSpace development
 
Introduction to git administration
Introduction to git administrationIntroduction to git administration
Introduction to git administration
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
WordFest Live 2022 - Git into the Groove - Moving from Freelance to Collabora...
 
Getting Started with Git
Getting Started with GitGetting Started with Git
Getting Started with Git
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)
 
Nyc Code Camp 2010 Git And Github
Nyc Code Camp 2010 Git And GithubNyc Code Camp 2010 Git And Github
Nyc Code Camp 2010 Git And Github
 
git-commands-cheat-sheet-infopediya-com.pdf
git-commands-cheat-sheet-infopediya-com.pdfgit-commands-cheat-sheet-infopediya-com.pdf
git-commands-cheat-sheet-infopediya-com.pdf
 
Git n git hub
Git n git hubGit n git hub
Git n git hub
 
Getting Into Git
Getting Into GitGetting Into Git
Getting Into Git
 
Of metacello, git, scripting and things
Of metacello, git, scripting and thingsOf metacello, git, scripting and things
Of metacello, git, scripting and things
 
Introduction to git and github.pdf
Introduction to git and github.pdfIntroduction to git and github.pdf
Introduction to git and github.pdf
 
GIT training - advanced for software projects
GIT training - advanced for software projectsGIT training - advanced for software projects
GIT training - advanced for software projects
 
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -EssentialsJAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
 
Intro to Git, GitHub, and BitBucket
Intro to Git, GitHub, and BitBucketIntro to Git, GitHub, and BitBucket
Intro to Git, GitHub, and BitBucket
 

More from Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsPerforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsPerforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessPerforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsPerforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowPerforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldPerforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMPerforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Perforce
 

More from Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Recently uploaded

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 

Recently uploaded (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 

Avoid Git Bloat and Submodule Hell with Perforce Git Fusion

Editor's Notes

  1. TODAY’S PRESENTATION Hello, my name is Russ Tremain and today I'm going to talk a little bit about how we have used Git Fusion here at Perforce to solve some interesting integration problems. I will cover some basic ways in which you can use Git fusion to integrate content from different sources into your companies content. But first, a little background.
  2. LINUS’S GIT Git was developed by Linus Torvalds to support Linux kernel development, and is geared to adding a constant flow of patches from numerous contributors to the hundreds of Linux kernel modules that are now available. Often, these patches are transmitted via email lists, and Git has facilities for easily generating and applying patches from email messages.
  3. WHY DEVLOPERS LIKE GIT Paramount among the features that Linus wanted, is the ability to see the entire history of a source file that is compiled into the Linux kernel. Why should a developer have to hook up to a central repository in order to see a diff? The answer is, the developer should not have to! At the time, many other software developers had arrived at a similar conclusion, and there was a period when Mercurial, Bazaar, and other SCM's blossomed to support the distributed development model.
  4. GIT, THE SORCERER’S APPRENTICE Git has become enormously popular for development in recent years. There are now millions of Git repositories out in the wild. The key word here is "millions" - there is a reason for that. Many of these repositories are merely "clones" of others, and do not contain unique content. An organization adopting Git as a pure development tool, thus becomes embroiled in a sort of Sorcerer's Apprentice problem - cloned repositories soon become yet another problem that has to be managed. The flow of commits between all of these repositories can be difficult for one developer to manage on an individual laptop, let alone an IT organization that is responsible for securing intellectual property for hundreds or even thousands of employee contributors.
  5. GIT IN THE REAL WORLD Various solutions have evolved to address the problem of out-of-control cloning. Many organizations adopt a Central Repository model, where Git developers essentially are required to work in a centralized flow that is more widely understood. Former Perforce VP of Product Technology Laura Wingerd popularized this idea in her book "Practical Perforce", ironically in the same year that Git was first released. The Central Repository Model, or "Mainline Model", as Wingerd calls it, is very popular, because it provides a simple, well understood method that can support any organization's software development workflows in a standard way.
  6. EMBRACING GIT IN THE ENTERPRISE By now, Git has essentially won the distributed SCM wars, and has become the dominant choice for most new open source projects, and for many new companies. Git has become a core skill for new software engineers, and so supporting Git for these developers is an imperative that Perforce recognized early, and as a result developed Git Fusion.
  7. GIT FUSION ALLOWS DEVELOPERS TO TAKE CHARGE With Git Fusion, Perforce elevates support for Git to the Enterprise level, allowing the seamless inter-operation of Git clients with back-end Perforce repositories. Developers thereby gain the ability to leverage a wide variety of Git open source technology and content for software development, while IT gets all the cool redundancy, brokering, and replication features that Perforce offers. So what are some of these advantages to the software developer? To start with, let's talk about submitting a Git Repository to Perforce. Once a developer has a Perforce account, and IT has provided a Git Fusion server, that developer can now re-parent Git repositories directly into a Perforce client view. This is a key concept - it is the Perforce Client View that can be leveraged not only to support the incorporation of existing Git Repositories, but also for re-mapping those repositories into new perforce views, and thus into new Git repositories. This can all be controlled by the developer with minimal support from IT, using the developer's existing Perforce credentials. IT can go about its business.
  8. DEVELOPERS CAN MANAGE THEIR OWN IMPORTS Secondly, how a software project evolves into Perforce is totally under the control of the developer. Does the code come from CVS? Subversion? Mercurial? RCS? Even SCCS? This is only of concern to the developer, and there are a wide variety of tools that can be used to migrate those sources into Git. Once it is in Git form, one merely reparents the repository to point to a Perforce view, and the migration is complete.
  9. REFACTORING GIT WITH PERFORCE GIT FUSION Third, after the repository is in Perforce, it can be remapped to any number of views that then become Git repositories as required by functional needs. For example, suppose you have a large, bloated Git repository that has grown to one or two gigabits in size. Under normal circumstances, the source code for the project may only be a small percentage of that overall size, and yet when the developer creates a local clone, all of the content is brought down. Git-based solutions to this problem have evolved, such as "shallow" cloning, but this complicates the developer’s workflow. A better solution would be to use Git Fusion to re-map the repository into functional views, such as a view designed for tech-pubs, one designed for QA, another for development, and finally, a "build" view that may encompass all of the other views, in order to drive a full-scale release process. I personally have had to do this sort of mapping in Git, and it was a hellish project that I would not want to have to repeat. Try explaining “filter-branches” to your mom.
  10. HOW TO REMAP YOUR GIT REPOSITORY To demonstrate how easy this is, here's an example where I reparent and submit my Cado open source project to Perforce, and then remap it into 3 new views - one containing the base source code, one containing the regression tests, and another containing the Cado template sources.
  11. WHAT IS CADO? Briefly, Cado is a template-based code-generation language that can be used to transform or create textual content. I have used it to convert wiki mark-up languages, generate large build systems, generate Java class hierarchies, etc. Cado is a programmers friend.
  12. Diagram of Demo
  13. DEMO
  14. MANAGING OUTSIDE CONTRIBUTORS Okay, that's all pretty cool, but let's think about the problem from another angle: using Git Fusion to manage workflow from outside contractors. Engineering teams sometimes need help, and hire outside contractors to add capacity during crunch times. Often, management resists giving those developers full access to the company resources. IT may not be well set up to monitor and grant privileges to contractors. With Git Fusion, contractors can be given a view into the source repository adequate to support their development, without requiring full access to a companies network. There are multiple options for managing the outside development, without ever exposing Perforce servers outside of the firewall. Here is a simple way you might approach the problem. [DIAGRAM] The above diagram is one approach in which Xyz Corporation has hired Acme Consulting to help on project X. The project manager at Acme consulting uses Git Fusion to clone the remote repository hosted at Xyz Corp: $ git clone –bare xyzcorp:x $ cd x $ git config --system receive.denyNonFastForwards true This can be a “bare” git repository, and we recommend that you require straight line merges, i.e., set the receive.denyNonFastForwards to true in your shared clone of the Git Fusion repository at Xyz corporation This will make integration with the development team at Xyz easier. In this scenario, Xyz Corp has decided to manage the contributions from Acme via a single Perforce user account, which is called “acme”. However, Acme may have several developers work on the project at their end, and to so the project manager at Xyz Corp keeps track of them in the Git Fusion user map, which is stored in the Perforce repository in the file //.git-fusion/users/p4gf_usermap. Unknown developers will not be allowed to integrate. From the Perforce repository view, all submits will done by the “acme” user account, but the original contributor’s name will be retained in the Git history. Meanwhile, the build team for Xyz Corp can continue to use their existing build infrastructure, driven by Perforce submits. No change in their process is necessary, other than the normal work of incorporating new product code for release.
  15. Diagram
  16. HOW WE USE GIT AT PERFORCE As Git Fusion has evolved, we have used it in a several different ways at Perforce. First of all, the GF dev team uses Git. Drink your own Ale. In build, we have used it to support versioning of Jenkins configurations. Jenkins doesn’t know that all of its configurations are being stored in Perforce, because it is using Git as it’s source control interface to version the configuration edits. I have used Git Fusion in a couple of different ways. The first was to migrate a software project for dumping out Electric Commander sources. I initially was working in CVS, because some of the other pieces I needed were also in CVS. I then migrated it to Git, and from there into Perforce. On the same project, I used Git as an interface to Perforce in order to develop the SCM synchronization for the Ecdump project. This meant that I could make all of my mistakes in throw-away Git repos. Once the synchronization piece was done, I flipped a switch and sent in into Perforce via Git Fusion. There are some more details of how I did this in Part II of my blog series on the Perforce blog site. Once the EC configurations are safe and sound in the Perforce repository, we can use any of the Perforce visual tools to figure out what happened when. The Ecdump project is now released to open-source, so that our customers can benefit. When I released it, I only had to re-parent the local repository to point to my open-source site, and push it on out. I can incorporate any fixes via the external-GF-Perforce pathway.
  17. SUMMARY Git fusion offers new options for working – as we showed in the demo, some teams can adopt Git for their development, will other teams can use the visual and drag and drop interfaces to Perforce. We do it here, at Perforce. We have also shown how you can solve the remapping problem for Git, using Perforce, for FREE! Did I mention FREE before? Give it a shot!
  18. RESOURCES Blog, part 1: http://www.perforce.com/blog/130702/using-git-api-perforce-part-1Blog, part 2: http://www.perforce.com/blog/130722/using-git-api-perforce-part-2Download Git Fusion: http://perforce.com/product/components/git-fusionGit Fusion Manual: http://www.perforce.com/perforce/doc.current/manuals/git-fusion/Cado & VSPMS open source home: http://github.com/russt/Cado downloads: http://sourceforge.net/projects/cado/files/