SlideShare a Scribd company logo
getlatestversion
Branching in Git
Ricci Gian Maria
http://www.codewrecks.com – http://blogs.ugidotnet.org/rgm -
http://www.getlatestversion.it/author/alkampfer/
alkampfer@nablasoft.com
@alkampfer
…
The
Basics
The key point in “branching” is: team need a
way to work on different version of
code/sources in parallel
We need branching
A branch in TFVC (or subversion) is a “smart
copy of a folder”, thus, they are cheating on us

Centralized VCS are Cheating
In Git the concept of “branch” is a first class
citizen
Git to the rescue
Pain points in
centralized
VCS
Folder space
Each branch is a
new folder
Each branch in centralized VCS
is a new folder.
Each folder occupy space in
client workspaces.
You need to resort to tricks for
“branch switching” (es tf get
/remap)
In Git you have a working copy and can switch
between branches with a simple command
Folder structure
Structure your folder
You need to plan for
Trunk/main before start
working
In some situation organization
of folders is dictated by
branching structure
In Git you have a working copy, the tool is taking
“snapshot” of content of that folder, no need for
special structures
The result
Resistance to branching
Team use less branching, to
minimize the pain.
When moving to Git, we have a
risk that people still fear
Branching.
If you embrace Git, but use the
same branching strategies of a
centralized VCS you are failing.
Embrace the
change
Local Branch
With local branches no one in the
team is affected by your choice on
how to parallelize your work
Rebase vs merge (rewriting history)
Flexibility on how you can reintegrate your local
branches before making your work available to
the team
Squashing
You can commit several time in a branch, but
you can made it composed by few/single
commit before reintegration
Public branches are not automatically downloaded
When you publish a branch,
other members are unaffected,
unless they decide to start
tracking that branch
Branch per
feature
Why Branch per feature
We want business people
decide which feature flow to
the next stage and when.
With branch per feature we
can “promote” branch reacting
to need of business people
Ex: Kano model
Leverage portfolio
management in
conjunction with Kano
model.
Simple TFS query to show
status of our feature and
decide when to move to
next stage of visibility
Branch per feature scares
When feature are developed in
parallel, we can have problem
during merges.
Merges are usually painful.
Monitor feature branches
In centralized VCS you should
duplicate build definitions for
Feature Branches.
For complex builds this create
some manual work to be done
each time a feature starts.
In Git a build can monitor many branches with a
single build definition
Reduce merge pain
The more a branch diverge
from its “parent”, the more
painful is merging back.
An usual solution is to
periodically reverse integration
from source to Feature Branch.
Monitor feature branches
In centralized VCS knowing if a
branch merges without conflict
is a manual process.
It is difficult to know when to
do a reverse integration to easy
merge pain
In Git you can customize a build to tell you if a
feature branch automatically merges and run a full
build merge result
Pull requests
Code review on steroids
With centralized VCS you usually
conduct a code review with patch
or similar solution (Ex. Shelveset)
To conduct a real code review, you
should create a branch where the
review can evolve.
Many hosting for Git offers the concept of pull request,
where you can ask for reintegration of a branch and have
a discussion on it
Pull refs
Some system (Es. GitHub)
automatically create and
maintain special refs for pull
request
This will have the same effect
of build customization, but
easier and with many
advantages.
Automating Feature Branches
Using Feature Branches, once
a strategy is decided, is
something that can be
automated
One of the most used strategy
is called Git Flow and is
automated even by GUI tools
like source tree
Question
http://svy.mk/1BLujLb
Per voi sono solo 10 minuti persi, per noi è
utilissimo per poter crescere e migliorare!
Ad

More Related Content

What's hot (20)

Bamboo Continuous Integration Server - Brief
Bamboo Continuous Integration Server - BriefBamboo Continuous Integration Server - Brief
Bamboo Continuous Integration Server - Brief
Ellen Feaheny
 
Continuous integration using atlassian bamboo
Continuous integration using atlassian bambooContinuous integration using atlassian bamboo
Continuous integration using atlassian bamboo
Alexander Masalov
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
Atlassian
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
Sebastian Helzle
 
Enhancing Your Workflow with Environment Hub
Enhancing Your Workflow with Environment HubEnhancing Your Workflow with Environment Hub
Enhancing Your Workflow with Environment Hub
Salesforce Developers
 
TFS Build - Continuous Integration
TFS Build - Continuous IntegrationTFS Build - Continuous Integration
TFS Build - Continuous Integration
Esteban Garcia
 
Continuous Delivery in the Cloud with Bitbucket Pipelines
Continuous Delivery in the Cloud with Bitbucket PipelinesContinuous Delivery in the Cloud with Bitbucket Pipelines
Continuous Delivery in the Cloud with Bitbucket Pipelines
Atlassian
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Udaypal Aarkoti
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHub
NYC DevShop
 
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Matthew Cobby
 
Continuous integration using Bamboo
Continuous integration using BambooContinuous integration using Bamboo
Continuous integration using Bamboo
Tudor Hornai
 
Release Management in TFS 2015
Release Management in TFS 2015Release Management in TFS 2015
Release Management in TFS 2015
InCycleSoftware
 
Jenkins Reviewbot
Jenkins ReviewbotJenkins Reviewbot
Jenkins Reviewbot
Yardena Meymann
 
Continuous Delivery for Front-End Engineers
Continuous Delivery for Front-End EngineersContinuous Delivery for Front-End Engineers
Continuous Delivery for Front-End Engineers
Sergey Bolshchikov
 
Ordina SOFTC Presentation - Deployment with TFS Build and Workflow
Ordina SOFTC Presentation - Deployment with TFS Build and WorkflowOrdina SOFTC Presentation - Deployment with TFS Build and Workflow
Ordina SOFTC Presentation - Deployment with TFS Build and Workflow
Ordina Belgium
 
Enter the Team City
Enter the Team CityEnter the Team City
Enter the Team City
Kashif Ali Siddiqui
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
Vishal Biyani
 
Tfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and TricksTfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and Tricks
InCycleSoftware
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDN
Edmund Turbin
 
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Canadian Cloud Summit 2022 - SharePoint Framework Tests IntroductionCanadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Laurent Sittler
 
Bamboo Continuous Integration Server - Brief
Bamboo Continuous Integration Server - BriefBamboo Continuous Integration Server - Brief
Bamboo Continuous Integration Server - Brief
Ellen Feaheny
 
Continuous integration using atlassian bamboo
Continuous integration using atlassian bambooContinuous integration using atlassian bamboo
Continuous integration using atlassian bamboo
Alexander Masalov
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
Atlassian
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
Sebastian Helzle
 
Enhancing Your Workflow with Environment Hub
Enhancing Your Workflow with Environment HubEnhancing Your Workflow with Environment Hub
Enhancing Your Workflow with Environment Hub
Salesforce Developers
 
TFS Build - Continuous Integration
TFS Build - Continuous IntegrationTFS Build - Continuous Integration
TFS Build - Continuous Integration
Esteban Garcia
 
Continuous Delivery in the Cloud with Bitbucket Pipelines
Continuous Delivery in the Cloud with Bitbucket PipelinesContinuous Delivery in the Cloud with Bitbucket Pipelines
Continuous Delivery in the Cloud with Bitbucket Pipelines
Atlassian
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHub
NYC DevShop
 
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
Matthew Cobby
 
Continuous integration using Bamboo
Continuous integration using BambooContinuous integration using Bamboo
Continuous integration using Bamboo
Tudor Hornai
 
Release Management in TFS 2015
Release Management in TFS 2015Release Management in TFS 2015
Release Management in TFS 2015
InCycleSoftware
 
Continuous Delivery for Front-End Engineers
Continuous Delivery for Front-End EngineersContinuous Delivery for Front-End Engineers
Continuous Delivery for Front-End Engineers
Sergey Bolshchikov
 
Ordina SOFTC Presentation - Deployment with TFS Build and Workflow
Ordina SOFTC Presentation - Deployment with TFS Build and WorkflowOrdina SOFTC Presentation - Deployment with TFS Build and Workflow
Ordina SOFTC Presentation - Deployment with TFS Build and Workflow
Ordina Belgium
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
Vishal Biyani
 
Tfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and TricksTfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and Tricks
InCycleSoftware
 
Production Ready WordPress #WPLDN
Production Ready WordPress #WPLDNProduction Ready WordPress #WPLDN
Production Ready WordPress #WPLDN
Edmund Turbin
 
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Canadian Cloud Summit 2022 - SharePoint Framework Tests IntroductionCanadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Canadian Cloud Summit 2022 - SharePoint Framework Tests Introduction
Laurent Sittler
 

Similar to Git branching model (20)

Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
Nowell Strite
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)
Yeasin Abedin
 
Version Uncontrolled - How to Manage Your Version Control (whitepaper)
Version Uncontrolled - How to Manage Your Version Control (whitepaper)Version Uncontrolled - How to Manage Your Version Control (whitepaper)
Version Uncontrolled - How to Manage Your Version Control (whitepaper)
Revelation Technologies
 
Introduction to Git (part 3)
Introduction to Git (part 3)Introduction to Git (part 3)
Introduction to Git (part 3)
Salvatore Cordiano
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Callon Campbell
 
Git Pull Requests
Git Pull RequestsGit Pull Requests
Git Pull Requests
Callon Campbell
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
Chen-Tien Tsai
 
CoDe:U git flow
CoDe:U git flowCoDe:U git flow
CoDe:U git flow
Lars Kruse
 
Gitting better
Gitting betterGitting better
Gitting better
Ali Servet Donmez
 
Git Workflows
Git WorkflowsGit Workflows
Git Workflows
Noam Kfir
 
Getting Git
Getting GitGetting Git
Getting Git
Brian Arnold
 
Git flow
Git flowGit flow
Git flow
Ahmed Nafea
 
Git How Does That Work Then
Git How Does That Work ThenGit How Does That Work Then
Git How Does That Work Then
David Greaves
 
Git tutorial git branches 20131206-Bryan
Git tutorial   git branches 20131206-BryanGit tutorial   git branches 20131206-Bryan
Git tutorial git branches 20131206-Bryan
LearningTech
 
Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFS
Mehdi Khalili
 
Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?
Paradigma Digital
 
Git Tutorial
Git Tutorial Git Tutorial
Git Tutorial
Ahmed Taha
 
Team Foundation Server - Source Control
Team Foundation Server - Source ControlTeam Foundation Server - Source Control
Team Foundation Server - Source Control
Dhirendra Singh
 
Understanding Github and Version Control System.pptx
Understanding Github and Version Control System.pptxUnderstanding Github and Version Control System.pptx
Understanding Github and Version Control System.pptx
AdebisiJoe
 
SVN Information
SVN Information  SVN Information
SVN Information
RAHUL TRIPATHI
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
Nowell Strite
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)
Yeasin Abedin
 
Version Uncontrolled - How to Manage Your Version Control (whitepaper)
Version Uncontrolled - How to Manage Your Version Control (whitepaper)Version Uncontrolled - How to Manage Your Version Control (whitepaper)
Version Uncontrolled - How to Manage Your Version Control (whitepaper)
Revelation Technologies
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
Chen-Tien Tsai
 
CoDe:U git flow
CoDe:U git flowCoDe:U git flow
CoDe:U git flow
Lars Kruse
 
Git Workflows
Git WorkflowsGit Workflows
Git Workflows
Noam Kfir
 
Git How Does That Work Then
Git How Does That Work ThenGit How Does That Work Then
Git How Does That Work Then
David Greaves
 
Git tutorial git branches 20131206-Bryan
Git tutorial   git branches 20131206-BryanGit tutorial   git branches 20131206-Bryan
Git tutorial git branches 20131206-Bryan
LearningTech
 
Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFS
Mehdi Khalili
 
Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?
Paradigma Digital
 
Team Foundation Server - Source Control
Team Foundation Server - Source ControlTeam Foundation Server - Source Control
Team Foundation Server - Source Control
Dhirendra Singh
 
Understanding Github and Version Control System.pptx
Understanding Github and Version Control System.pptxUnderstanding Github and Version Control System.pptx
Understanding Github and Version Control System.pptx
AdebisiJoe
 
Ad

More from Gian Maria Ricci (20)

Se non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoSe non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorando
Gian Maria Ricci
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gian Maria Ricci
 
Migrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a GitMigrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a Git
Gian Maria Ricci
 
Real World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsReal World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOps
Gian Maria Ricci
 
Gestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devops
Gian Maria Ricci
 
Build and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesBuild and release in code with azure devops pipelines
Build and release in code with azure devops pipelines
Gian Maria Ricci
 
Azure Pipeline in salsa yaml
Azure Pipeline in salsa yamlAzure Pipeline in salsa yaml
Azure Pipeline in salsa yaml
Gian Maria Ricci
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teams
Gian Maria Ricci
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
Gian Maria Ricci
 
TFS - Quale source control
TFS - Quale source controlTFS - Quale source control
TFS - Quale source control
Gian Maria Ricci
 
Branch model in Git
Branch model in GitBranch model in Git
Branch model in Git
Gian Maria Ricci
 
Introduction to Visual Studio Online
Introduction to Visual Studio OnlineIntroduction to Visual Studio Online
Introduction to Visual Studio Online
Gian Maria Ricci
 
Git si o Git No
Git si o Git NoGit si o Git No
Git si o Git No
Gian Maria Ricci
 
Testing
TestingTesting
Testing
Gian Maria Ricci
 
Come Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectCome Organizzare il proprio Team Project
Come Organizzare il proprio Team Project
Gian Maria Ricci
 
Git Perchè Usarlo
Git Perchè UsarloGit Perchè Usarlo
Git Perchè Usarlo
Gian Maria Ricci
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web Sites
Gian Maria Ricci
 
Porfolio Management in TFS 2013
Porfolio Management in TFS 2013Porfolio Management in TFS 2013
Porfolio Management in TFS 2013
Gian Maria Ricci
 
TFS or Team Foundation Service?
TFS or Team Foundation Service?TFS or Team Foundation Service?
TFS or Team Foundation Service?
Gian Maria Ricci
 
Typical Developer Day
Typical Developer DayTypical Developer Day
Typical Developer Day
Gian Maria Ricci
 
Se non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorandoSe non sviluppo codice non sto lavorando
Se non sviluppo codice non sto lavorando
Gian Maria Ricci
 
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure Devops
Gian Maria Ricci
 
Migrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a GitMigrare da un VCS centralizzato a Git
Migrare da un VCS centralizzato a Git
Gian Maria Ricci
 
Real World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOpsReal World Build + Release automation in Azure DevOps
Real World Build + Release automation in Azure DevOps
Gian Maria Ricci
 
Gestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devopsGestire i rilasci automatici con azure devops
Gestire i rilasci automatici con azure devops
Gian Maria Ricci
 
Build and release in code with azure devops pipelines
Build and release in code with azure devops pipelinesBuild and release in code with azure devops pipelines
Build and release in code with azure devops pipelines
Gian Maria Ricci
 
Azure Pipeline in salsa yaml
Azure Pipeline in salsa yamlAzure Pipeline in salsa yaml
Azure Pipeline in salsa yaml
Gian Maria Ricci
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teams
Gian Maria Ricci
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
Gian Maria Ricci
 
TFS - Quale source control
TFS - Quale source controlTFS - Quale source control
TFS - Quale source control
Gian Maria Ricci
 
Introduction to Visual Studio Online
Introduction to Visual Studio OnlineIntroduction to Visual Studio Online
Introduction to Visual Studio Online
Gian Maria Ricci
 
Come Organizzare il proprio Team Project
Come Organizzare il proprio Team ProjectCome Organizzare il proprio Team Project
Come Organizzare il proprio Team Project
Gian Maria Ricci
 
Automatically deployment to Azure Web Sites
Automatically deployment to Azure Web SitesAutomatically deployment to Azure Web Sites
Automatically deployment to Azure Web Sites
Gian Maria Ricci
 
Porfolio Management in TFS 2013
Porfolio Management in TFS 2013Porfolio Management in TFS 2013
Porfolio Management in TFS 2013
Gian Maria Ricci
 
TFS or Team Foundation Service?
TFS or Team Foundation Service?TFS or Team Foundation Service?
TFS or Team Foundation Service?
Gian Maria Ricci
 
Ad

Recently uploaded (20)

Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 

Git branching model

  • 1. getlatestversion Branching in Git Ricci Gian Maria http://www.codewrecks.com – http://blogs.ugidotnet.org/rgm - http://www.getlatestversion.it/author/alkampfer/ [email protected] @alkampfer …
  • 3. The key point in “branching” is: team need a way to work on different version of code/sources in parallel We need branching
  • 4. A branch in TFVC (or subversion) is a “smart copy of a folder”, thus, they are cheating on us  Centralized VCS are Cheating
  • 5. In Git the concept of “branch” is a first class citizen Git to the rescue
  • 7. Folder space Each branch is a new folder Each branch in centralized VCS is a new folder. Each folder occupy space in client workspaces. You need to resort to tricks for “branch switching” (es tf get /remap) In Git you have a working copy and can switch between branches with a simple command
  • 8. Folder structure Structure your folder You need to plan for Trunk/main before start working In some situation organization of folders is dictated by branching structure In Git you have a working copy, the tool is taking “snapshot” of content of that folder, no need for special structures
  • 9. The result Resistance to branching Team use less branching, to minimize the pain. When moving to Git, we have a risk that people still fear Branching. If you embrace Git, but use the same branching strategies of a centralized VCS you are failing.
  • 11. Local Branch With local branches no one in the team is affected by your choice on how to parallelize your work
  • 12. Rebase vs merge (rewriting history) Flexibility on how you can reintegrate your local branches before making your work available to the team
  • 13. Squashing You can commit several time in a branch, but you can made it composed by few/single commit before reintegration
  • 14. Public branches are not automatically downloaded When you publish a branch, other members are unaffected, unless they decide to start tracking that branch
  • 16. Why Branch per feature We want business people decide which feature flow to the next stage and when. With branch per feature we can “promote” branch reacting to need of business people
  • 17. Ex: Kano model Leverage portfolio management in conjunction with Kano model. Simple TFS query to show status of our feature and decide when to move to next stage of visibility
  • 18. Branch per feature scares When feature are developed in parallel, we can have problem during merges. Merges are usually painful.
  • 19. Monitor feature branches In centralized VCS you should duplicate build definitions for Feature Branches. For complex builds this create some manual work to be done each time a feature starts. In Git a build can monitor many branches with a single build definition
  • 20. Reduce merge pain The more a branch diverge from its “parent”, the more painful is merging back. An usual solution is to periodically reverse integration from source to Feature Branch.
  • 21. Monitor feature branches In centralized VCS knowing if a branch merges without conflict is a manual process. It is difficult to know when to do a reverse integration to easy merge pain In Git you can customize a build to tell you if a feature branch automatically merges and run a full build merge result
  • 23. Code review on steroids With centralized VCS you usually conduct a code review with patch or similar solution (Ex. Shelveset) To conduct a real code review, you should create a branch where the review can evolve. Many hosting for Git offers the concept of pull request, where you can ask for reintegration of a branch and have a discussion on it
  • 24. Pull refs Some system (Es. GitHub) automatically create and maintain special refs for pull request This will have the same effect of build customization, but easier and with many advantages.
  • 25. Automating Feature Branches Using Feature Branches, once a strategy is decided, is something that can be automated One of the most used strategy is called Git Flow and is automated even by GUI tools like source tree
  • 27. http://svy.mk/1BLujLb Per voi sono solo 10 minuti persi, per noi è utilissimo per poter crescere e migliorare!