SlideShare uma empresa Scribd logo
1 de 176
Baixar para ler offline
Real World

Workflows
Nicola Paolucci

Developer Advocate / Git Evangelist

I come out nice in pictures, I know :-).

durdn.com

@durdn
You heard

has
Cheap local branching

Full local history

10x the speed of svn

Staging area
Speed

Huge community
Feature based workflow

prominent in Open Source
cryptographic integrity

Distributed
ground breaking paradigm
is ground breaking
Workflow building blocks
fork

cheap branching

rebase
powerful merging
distributed
clone
Can we do a fast
Can we fix a bug for the
upcoming

RELEASE

HOTFIXrelease?
for the current

?
Can we

BUILD

the current code ?
Is the code for that

FEATURE
complete?

Has everybody

REVIEWED ?
the code for this feature
What we’ll cover:
What we’ll cover:
1

Branching models
What we’ll cover:
1

Branching models

2

Practices & Decisions
What we’ll cover:
1

Branching models

2

Practices & Decisions

3

Tooling & Automation
What we’ll cover:
1

Branching models

2

Practices & Decisions

3

Tooling & Automation

4

Continuous Integration
Which branching model?
1

Which branching model?
Two common Branching Models
Two common Branching Models
1

Continuous Delivery
Two common Branching Models
1

Continuous Delivery

2

Product Releases
for Continuous Delivery
1.1

for Continuous Delivery
Time

feature

staging

master/
production
staging

Time

feature

master/
production

master is in production
staging

Time

feature

master/
production

master is in production
staging is the next version
staging

Time

feature

master/
production

master is in production
staging is the next version
new features off staging
with branch names like:
username/ISSUE-KEY-summary
staging

Time

feature

master/
production

master is in production
PR

staging is the next version
new features off staging
with branch names like:
username/ISSUE-KEY-summary
staging

promoted from staging, can receive hotfixes

Time

feature

master/
production

master is in production
PR

staging is the next version
new features off staging
with branch names like:
username/ISSUE-KEY-summary
staging

promoted from staging, can receive hotfixes

Time

feature

master/
production

master is in production
PR

staging is the next version
new features off staging
with branch names like:

Hotfix

username/ISSUE-KEY-summary
staging

promoted from staging, can receive hotfixes

Time

feature

master/
production

master is in production
PR

staging is the next version
new features off staging
with branch names like:

Hotfix

username/ISSUE-KEY-summary
for Product Releases
1.2

for Product Releases
1

One Central Repository
master

PRJ-123-description

Time

feature
branches

1

One Central Repository

2

One Branch per Feature
PRJ-123-bug-description

Time

bugfix
branch

master

1

One Central Repository

2

One Branch per Feature

3

One Branch per Bugfix
2.2

PRJ-345-bug-description

Time

bugfix
release
branch
master
master

2.2

PRJ-345-bug-description

Time

bugfix

release
branch

4

Release Branches
master

Long running

2.2

PRJ-345-bug-description

Time

bugfix

release
branch

4

Release Branches
master

Long running

2.2

PRJ-345-bug-description

Time

bugfix

release
branch

4

Release Branches

5

master is alpha / RC
Automatic merges for the win!
release
branch

release
branch

2.1

2.2

PRJ-345-bug-description

Time

bugfix

master
Automatic MERGES!

release
branch

release
branch

2.1

2.2

PRJ-345-bug-description

Time

bugfix

master
Automatic MERGES!

release
branch

release
branch

2.1

2.2

PRJ-345-bug-description

Time

bugfix

master
Automatic MERGES!

release
branch

release
branch

2.1

2.2

PRJ-345-bug-description

Time

bugfix

master
Placeholder for changes you DON’T want to merge!
release
branch

release
branch

2.1

2.2

2.2.1
release
branch

release
branch

2.1

2.2

2.2.1

2.1.4
release
branch

release
branch

2.1

2.2

2.2.1

2.1.4
2.1.5-SNAPSHOT
release
branch

release
branch

2.1

2.2

2.2.1

2.1.4
2.1.5-SNAPSHOT

We don’t want to merge
the 2.1.x version!
release
branch

release
branch

2.1

2.2

2.2.1

2.1.4
2.1.5-SNAPSHOT

What can we do here?

We don’t want to merge
the 2.1.x version!
git merge
git merge --strategy= resolve
git merge --strategy= recursive
git merge --strategy=
git merge --strategy= ours
stable
branch

stable
branch

2.1

2.2

2.2.1

2.1.4
2.1.5-SNAPSHOT
stable
branch

stable
branch

2.1

2.2

2.2.1

2.1.4
2.1.5-SNAPSHOT

$> git checkout stable-2.2
$> git merge -s ours stable-2.1
stable
branch

stable
branch

2.1

2.2

2.2.1

2.1.4
2.1.5-SNAPSHOT

$> git checkout stable-2.2
$> git merge -s ours stable-2.1

merge commit, content
discarded
Deep breath, it’s really simple
The secret sauce

The merge protocol
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

Less stable than its
baseline

When code complete

Continuously
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

Less stable than its
baseline

When code complete

Continuously
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

When code complete

Continuously

Release branch

Less stable than its
baseline
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

When code complete

Continuously

Release branch

Less stable than its
baseline
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

When code complete

Continuously

Release branch

Less stable than its
baseline
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

When code complete

Continuously

Release branch

Less stable than its
baseline
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

When code complete

Continuously

Release branch

Less stable than its
baseline
Feature branches
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

When code complete

Continuously

Release branch

Less stable than its
baseline
Feature branches
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

When code complete

Continuously

Release branch

Less stable than its
baseline
Feature branches
The secret sauce

The merge protocol
When a branch is:

Change flows from
branch to baseline:

Change flows from baseline
to branch:

More stable than its
baseline

Continuously

Never

When code complete

Continuously

Release branch

Less stable than its
baseline
Feature branches

Credit: Laura Wingerd - The Flow of change
The secret sauce

The merge protocol
Release Branch

Master
The secret sauce

The merge protocol
Release Branch
Merge
continuously

Master
The secret sauce

The merge protocol
Release Branch
Never

Merge

merge!

continuously

Master
The secret sauce

The merge protocol
Release Branch
Never

Merge

merge!

continuously

Master

Backport single
changes using
git cherry-pick
Practices & Decisions
turbo boost!

2

Practices & Decisions
What is a Pull Request?
Pull Request
I have some
code here!

Hey I have some code I
want to merge here,
take a look?

Low friction
collaboration

Can I merge
it here?
Merge vs Rebase
Does a debate even exist?

REBASE

MERGE
What is a Rebase?
feature

master
What is a Rebase?
Merge commit
feature

master
What is a Rebase?
Merge commit
feature

master

feature

master
What is a Rebase?
Merge commit
feature

master

feature

master
What is a Rebase?
Merge commit
feature

master

feature

master
What is a Rebase?
Merge commit
feature

master

feature

master
Merge as team policy
Merge as team policy
1

Traceability
Merge as team policy
1

Traceability

2

At a cost: readability
Merge as team policy
1

Traceability

2

At a cost: readability

3

bisect debugging is harder
Merge as team policy
with no fast-forwards

1

Traceability

2

At a cost: readability

3

bisect debugging is harder
Rebase as team policy [1]
Rebase as team policy [1]
1

History flat and clean
Rebase as team policy [1]
1

History flat and clean

2

Delicate with Pull Requests
Rebase as team policy [1]
1

History flat and clean

2

Delicate with Pull Requests

3

Dangerous for unexperienced
Rebase as team policy [2]
Rebase as team policy [2]
4

Re-resolve similar conflicts
Rebase as team policy [2]
4

Re-resolve similar conflicts

5

Requires often a force push
Rebase as team policy [2]
4

Re-resolve similar conflicts

5

Requires often a force push

6

Loses context for feature
Rebase as a local cleanup
Rebase as a local cleanup
1

Do it
Rebase as a local cleanup
git rebase --interactive
1

Do it
Rebase as a local cleanup
git rebase --interactive
1

Do it

2

Do it
Rebase as a local cleanup
git rebase --interactive
1

Do it

2

Do it

3

Do it!!!!!!
Recommendation?
Recommendation?
1

If team unfamiliar, don’t rebase
Recommendation?
1

If team unfamiliar, don’t rebase

2

Encourage rebase as cleanup

and proper ecology
Recommendation?
1

If team unfamiliar, don’t rebase

2

Encourage rebase as cleanup

and proper ecology

3

Choose clean or traceable
Recommendation?
Recommendation?
4

Don’t fear the Merge! Use it!
Recommendation?
Explicit merges into the mainline

4

Don’t fear the Merge! Use it!
Recommendation?
Explicit merges into the mainline

4

Don’t fear the Merge! Use it!

git log --first-parent
Recommendation?
Explicit merges into the mainline

4

Don’t fear the Merge! Use it!

git log --first-parent

5

May rebase feature branches
Recommendation?
Explicit merges into the mainline

4

Don’t fear the Merge! Use it!

git log --first-parent

5

May rebase feature branches

To update the feature branch
Recommendation?
Explicit merges into the mainline

4

Don’t fear the Merge! Use it!

git log --first-parent

After review!

5

May rebase feature branches

To update the feature branch
Recommendation?
Explicit merges into the mainline

4

Don’t fear the Merge! Use it!

git log --first-parent

After review!

5

May rebase feature branches

To update the feature branch

6

Work with the tool!
Recommendation?
Explicit merges into the mainline

4

Don’t fear the Merge! Use it!

git log --first-parent

After review!

5

May rebase feature branches

To update the feature branch

6

Work with the tool!
Trying to strive for a linearized history is less useful than you think
Single Repository
vs
Remote Forks
With Forks
Every one has their
remote repository
With Forks
Every one has their
remote repository

Full remote copy,
each has one

Integrator, Gatekeeper,
Tech Lead, etc.
Pros of a Single Repo
Pros of a Single Repo
1

Complete visibility
Pros of a Single Repo
All feature
branches
available

1

Complete visibility
Pros of a Single Repo
All feature
branches
available

1

Complete visibility

2

No per Dev remotes required
Pros of a Single Repo
All feature
branches
available

1

Complete visibility

2

No per Dev remotes required

3

KISS
Forks
Are Great too BTW
FORKING
IN THE

ENTERPRISE
FORKING IN

5 Reasons for...

ENTERPRISE
FORKING IN

ENTERPRISE

REASON 1

Great for customizing libraries
FORKING IN

ENTERPRISE

REASON 1

Great for customizing libraries
and still get bug fixes
FORKING IN

ENTERPRISE

REASON 2

Great for innovation spikes
FORKING IN

ENTERPRISE

REASON 2

Great for innovation spikes
and maybe add it later
FORKING IN

ENTERPRISE

REASON 3

Protecting your components
FORKING IN

but still be open for changes

REASON 3

Protecting your components

ENTERPRISE
FORKING IN

ENTERPRISE

REASON 4

Reduce the noise
FORKING IN

ENTERPRISE

REASON 4

Reduce the noise
and keep the overview for huge projects
FORKING IN

ENTERPRISE

REASON 5

Interaction with Contractors &
Interns
FORKING IN

ENTERPRISE

REASON 5

Interaction with Contractors &
Interns
protect your sources
Tooling & Automation
3

Tooling & Automation
Hooks
“

Hooks are little scripts you can place in
the `$GIT_DIR/hooks` directory to trigger

”

action at certain points.
– githooks Documentation
Pre

Post
Local

Remote
Local
pre-/post-applypatch
pre-/post-commit

Remote
pre-receive
update

pre-rebase

post-receive

post-checkout

post-update

post-merge
pre-push
Code Quality
via pre-commit hooks
.git/hooks/pre-commit
git add -u
git commit -m "TEST checkstyle"
Starting audit...
/Users/user/[...]/com/atlassian/stash/
web/projects/ProjectController.java:
161:12: 'for' is not followed by
whitespace.
Audit done.
Commit aborted.
Branch from green builds
.git/hooks/post-checkout
$ git checkout master
master is lookin'good!
c4f3b4b has 4 green builds.
 
$ git checkout stable-2.3
DANGER! stable-2.3 is
busted. e1324fa has 2 red
builds.
Get it at:
bitly.com/green-builds
What happens to CI with

?
4

What happens to CI with

?
1

What happens to CI with git?
1

What happens to CI with git?

2

An explosion of branches
1

What happens to CI with git?

2

An explosion of branches

3

Performance degradation of build sys
1

Building everything is expensive
1

Building everything is expensive

2

Automatically build stable and master
1

Building everything is expensive

2

Automatically build stable and master

3

Manually trigger feature branch builds
In Conclusion: the recipe
Conclusions
Collaboration
Model

Branching
Model

Practices &
Decisions

Automation &
CI setup
Conclusions
Collaboration
Model

Centralized

Branching
Model

Practices &
Decisions

Automation &
CI setup
Conclusions
Collaboration
Model

Branching
Model
Product
workflow

Centralized

Practices &
Decisions

Automation &
CI setup
Conclusions
Collaboration
Model

Branching
Model
Product
workflow

Centralized
Continuous
delivery
workflow

Practices &
Decisions

Automation &
CI setup
Conclusions
Collaboration
Model

Branching
Model
Product
workflow

Centralized
Continuous
delivery
workflow

Practices &
Decisions

Embrace PR

Automation &
CI setup
Conclusions
Collaboration
Model

Branching
Model
Product
workflow

Practices &
Decisions

Embrace PR
Merge vs

Centralized
Continuous
delivery
workflow

Rebase

Automation &
CI setup
Conclusions
Collaboration
Model

Branching
Model
Product
workflow

Practices &
Decisions

Embrace PR
Merge vs

Centralized
Continuous

Rebase

delivery
workflow

Single Repo
or Forks

Automation &
CI setup
Conclusions
Collaboration
Model

Branching
Model
Product
workflow

Practices &
Decisions

Embrace PR
Merge vs

Centralized
Continuous

Rebase

delivery
workflow

Single Repo
or Forks

Automation &
CI setup
Hooks, hooks
everywhere
Conclusions
Collaboration
Model

Branching
Model
Product
workflow

Practices &
Decisions

Embrace PR
Merge vs

Centralized
Continuous

Rebase

delivery
workflow

Single Repo
or Forks

Automation &
CI setup
Hooks, hooks
everywhere
Build
automatically,
but leave
knobs!
Nicola Paolucci

THANK YOU FOR YOUR ATTENTION!

Should I change the pic? ;-)

durdn.com

@durdn
Atlassian
Git Repository Management
for Enterprise Teams
Free Git Code Hosting
for Small Teams
Free Git Desktop client
for Mac or Windows

Mais conteúdo relacionado

Mais procurados

Releasing High Quality PHP Packages - ConFoo Montreal 2019
Releasing High Quality PHP Packages - ConFoo Montreal 2019Releasing High Quality PHP Packages - ConFoo Montreal 2019
Releasing High Quality PHP Packages - ConFoo Montreal 2019Colin O'Dell
 
Professional iOS development
Professional iOS developmentProfessional iOS development
Professional iOS developmentAline Borges
 
Continuous delivery from the trenches
Continuous delivery from the trenchesContinuous delivery from the trenches
Continuous delivery from the trenchesMichael Medin
 
How we git - commit policy and code review
How we git - commit policy and code reviewHow we git - commit policy and code review
How we git - commit policy and code reviewRuben Tan
 
Releasing High-Quality Packages - php[world] 2018
Releasing High-Quality Packages - php[world] 2018Releasing High-Quality Packages - php[world] 2018
Releasing High-Quality Packages - php[world] 2018Colin O'Dell
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciAtlassian
 
Super-powered CI with Git - Sarah Goff-Dupont
Super-powered CI with Git - Sarah Goff-DupontSuper-powered CI with Git - Sarah Goff-Dupont
Super-powered CI with Git - Sarah Goff-DupontAtlassian
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done rightTomas Riha
 
Porque Odeio Branches
Porque Odeio BranchesPorque Odeio Branches
Porque Odeio BranchesRafael Petry
 
Git Branching for Agile Teams
Git Branching for Agile TeamsGit Branching for Agile Teams
Git Branching for Agile TeamsSven Peters
 
Test Engineering on Mobage
Test Engineering on MobageTest Engineering on Mobage
Test Engineering on MobageMasaki Nakagawa
 
Git Ready! Workflows
Git Ready! WorkflowsGit Ready! Workflows
Git Ready! WorkflowsAtlassian
 
DevTalk: From Uni to Enterprise
DevTalk: From Uni to EnterpriseDevTalk: From Uni to Enterprise
DevTalk: From Uni to EnterprisePerforce
 
Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)Perforce
 
Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Perforce
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentLemi Orhan Ergin
 
40 square's git workflow
40 square's git workflow40 square's git workflow
40 square's git workflowRuben Tan
 
XPDS13: Xen Hypervisor Development Update - George Dunlap, Citrix
XPDS13: Xen Hypervisor Development Update - George Dunlap, CitrixXPDS13: Xen Hypervisor Development Update - George Dunlap, Citrix
XPDS13: Xen Hypervisor Development Update - George Dunlap, CitrixThe Linux Foundation
 
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014London Atlassian User Group - February 2014
London Atlassian User Group - February 2014Steve Smith
 

Mais procurados (20)

Releasing High Quality PHP Packages - ConFoo Montreal 2019
Releasing High Quality PHP Packages - ConFoo Montreal 2019Releasing High Quality PHP Packages - ConFoo Montreal 2019
Releasing High Quality PHP Packages - ConFoo Montreal 2019
 
Professional iOS development
Professional iOS developmentProfessional iOS development
Professional iOS development
 
Continuous delivery from the trenches
Continuous delivery from the trenchesContinuous delivery from the trenches
Continuous delivery from the trenches
 
How we git - commit policy and code review
How we git - commit policy and code reviewHow we git - commit policy and code review
How we git - commit policy and code review
 
Releasing High-Quality Packages - php[world] 2018
Releasing High-Quality Packages - php[world] 2018Releasing High-Quality Packages - php[world] 2018
Releasing High-Quality Packages - php[world] 2018
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola Paolucci
 
Super-powered CI with Git - Sarah Goff-Dupont
Super-powered CI with Git - Sarah Goff-DupontSuper-powered CI with Git - Sarah Goff-Dupont
Super-powered CI with Git - Sarah Goff-Dupont
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done right
 
Porque Odeio Branches
Porque Odeio BranchesPorque Odeio Branches
Porque Odeio Branches
 
Git Branching for Agile Teams
Git Branching for Agile TeamsGit Branching for Agile Teams
Git Branching for Agile Teams
 
Test Engineering on Mobage
Test Engineering on MobageTest Engineering on Mobage
Test Engineering on Mobage
 
Git Ready! Workflows
Git Ready! WorkflowsGit Ready! Workflows
Git Ready! Workflows
 
DevTalk: From Uni to Enterprise
DevTalk: From Uni to EnterpriseDevTalk: From Uni to Enterprise
DevTalk: From Uni to Enterprise
 
Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)
 
Development tools
Development toolsDevelopment tools
Development tools
 
Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?
 
Git and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software DevelopmentGit and Git Workflow Models as Catalysts of Software Development
Git and Git Workflow Models as Catalysts of Software Development
 
40 square's git workflow
40 square's git workflow40 square's git workflow
40 square's git workflow
 
XPDS13: Xen Hypervisor Development Update - George Dunlap, Citrix
XPDS13: Xen Hypervisor Development Update - George Dunlap, CitrixXPDS13: Xen Hypervisor Development Update - George Dunlap, Citrix
XPDS13: Xen Hypervisor Development Update - George Dunlap, Citrix
 
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014London Atlassian User Group - February 2014
London Atlassian User Group - February 2014
 

Semelhante a Real World Git Workflows - EclipseCon Europe 2013

Be a Happier Developer with Git / Productive Team #gettinggitright
Be a Happier Developer with Git / Productive Team #gettinggitright Be a Happier Developer with Git / Productive Team #gettinggitright
Be a Happier Developer with Git / Productive Team #gettinggitright Shunsuke (Sean) Osawa
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowAll Things Open
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based developmentgo_oh
 
Source Code Management Slides
Source Code Management SlidesSource Code Management Slides
Source Code Management Slidesdaschuck
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version ControlNowell Strite
 
Composer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementComposer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementJoe Ferguson
 
Python monorepos what, why and how (shared)
Python monorepos  what, why and how (shared)Python monorepos  what, why and how (shared)
Python monorepos what, why and how (shared)benjyw
 
A Branch for Every Feature - Atlassian Summit 2012
A Branch for Every Feature - Atlassian Summit 2012A Branch for Every Feature - Atlassian Summit 2012
A Branch for Every Feature - Atlassian Summit 2012Atlassian
 
Chef Compliance & Workflow w/Delivery
Chef Compliance & Workflow w/Delivery Chef Compliance & Workflow w/Delivery
Chef Compliance & Workflow w/Delivery Chef
 
Clarive 7 Branching Model
Clarive 7 Branching ModelClarive 7 Branching Model
Clarive 7 Branching ModelClarive
 
10 Tips for Configuring Your Builds with Bamboo Specs
10 Tips for Configuring Your Builds with Bamboo Specs10 Tips for Configuring Your Builds with Bamboo Specs
10 Tips for Configuring Your Builds with Bamboo SpecsAtlassian
 
Release and-dependency-management memphis python
Release and-dependency-management memphis pythonRelease and-dependency-management memphis python
Release and-dependency-management memphis pythonJoe Ferguson
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps JumpstartOri Donner
 
Make Your Team Flow
Make Your Team FlowMake Your Team Flow
Make Your Team FlowChad Moone
 
Test Driven Design
Test Driven DesignTest Driven Design
Test Driven DesignSaad Ahmed
 
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Lemi Orhan Ergin
 
Relational Database CI/CD
Relational Database CI/CDRelational Database CI/CD
Relational Database CI/CDJasmin Fluri
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Robert Reiz
 

Semelhante a Real World Git Workflows - EclipseCon Europe 2013 (20)

Be a Happier Developer with Git / Productive Team #gettinggitright
Be a Happier Developer with Git / Productive Team #gettinggitright Be a Happier Developer with Git / Productive Team #gettinggitright
Be a Happier Developer with Git / Productive Team #gettinggitright
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
The Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To KnowThe Ember.js Framework - Everything You Need To Know
The Ember.js Framework - Everything You Need To Know
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
Source Code Management Slides
Source Code Management SlidesSource Code Management Slides
Source Code Management Slides
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
 
Composer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency ManagementComposer at Scale, Release and Dependency Management
Composer at Scale, Release and Dependency Management
 
Python monorepos what, why and how (shared)
Python monorepos  what, why and how (shared)Python monorepos  what, why and how (shared)
Python monorepos what, why and how (shared)
 
A Branch for Every Feature - Atlassian Summit 2012
A Branch for Every Feature - Atlassian Summit 2012A Branch for Every Feature - Atlassian Summit 2012
A Branch for Every Feature - Atlassian Summit 2012
 
Chef Compliance & Workflow w/Delivery
Chef Compliance & Workflow w/Delivery Chef Compliance & Workflow w/Delivery
Chef Compliance & Workflow w/Delivery
 
Clarive 7 Branching Model
Clarive 7 Branching ModelClarive 7 Branching Model
Clarive 7 Branching Model
 
10 Tips for Configuring Your Builds with Bamboo Specs
10 Tips for Configuring Your Builds with Bamboo Specs10 Tips for Configuring Your Builds with Bamboo Specs
10 Tips for Configuring Your Builds with Bamboo Specs
 
Release and-dependency-management memphis python
Release and-dependency-management memphis pythonRelease and-dependency-management memphis python
Release and-dependency-management memphis python
 
SQL Server DevOps Jumpstart
SQL Server DevOps JumpstartSQL Server DevOps Jumpstart
SQL Server DevOps Jumpstart
 
Make Your Team Flow
Make Your Team FlowMake Your Team Flow
Make Your Team Flow
 
Test Driven Design
Test Driven DesignTest Driven Design
Test Driven Design
 
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Relational Database CI/CD
Relational Database CI/CDRelational Database CI/CD
Relational Database CI/CD
 
Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014Continuous Updating with VersionEye at code.talks 2014
Continuous Updating with VersionEye at code.talks 2014
 

Mais de Nicola Paolucci

Transformative Git Practices
Transformative Git PracticesTransformative Git Practices
Transformative Git PracticesNicola Paolucci
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementNicola Paolucci
 
Be a better developer with Docker (revision 3)
Be a better developer with Docker (revision 3)Be a better developer with Docker (revision 3)
Be a better developer with Docker (revision 3)Nicola Paolucci
 
Be a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeBe a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeNicola Paolucci
 
Ninja Git: Save Your Master
Ninja Git: Save Your MasterNinja Git: Save Your Master
Ninja Git: Save Your MasterNicola Paolucci
 

Mais de Nicola Paolucci (7)

Transformative Git Practices
Transformative Git PracticesTransformative Git Practices
Transformative Git Practices
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster management
 
Git Power Routines
Git Power RoutinesGit Power Routines
Git Power Routines
 
Becoming a Git Master
Becoming a Git MasterBecoming a Git Master
Becoming a Git Master
 
Be a better developer with Docker (revision 3)
Be a better developer with Docker (revision 3)Be a better developer with Docker (revision 3)
Be a better developer with Docker (revision 3)
 
Be a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeBe a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the trade
 
Ninja Git: Save Your Master
Ninja Git: Save Your MasterNinja Git: Save Your Master
Ninja Git: Save Your Master
 

Último

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Último (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Real World Git Workflows - EclipseCon Europe 2013