perforce unplugged: central and distributed versioning and distributed versioning
Post on 17-Jul-2015
586 Views
Preview:
TRANSCRIPT
Perforce Unplugged: Distributed and Central Versioning
Alan H. TeagueTechnical Director
PERFORCE UNPLUGGED
Imag
e: Id
ea g
o / F
reeD
igita
lPho
tos.n
et
SURVEY SAYS...
WINNING FEATURES FOR DVCSs
Imag
e: Id
ea g
o / F
reeD
igita
lPho
tos.n
et
“The envelope please...”
CONNECTION INDEPENDENT VERSIONING
Imag
e: Id
ea g
o / F
reeD
igita
lPho
tos.n
et
PRIVATE LOCAL BRANCHING
TASK BRANCHING
INTRODUCING...
P4Sandbox*
SOLUTION ONE: Connection Independent Versioning
SOLUTION TWO: Private Local Branching
I decide...
SOLUTION THREE: Task Branching
% p4 switch story_one Current branch is story_one
% p4 switch story_two Current branch is story_two
hero.png
HOW IT REALLY WORKS...
Zig ZichtermanTechnical Lead
P4SandboxHow it Works
What is P4Sandbox?
Broker P4D
What is P4Sandbox?
Sandbox Server
Local Stream
What is P4Sandbox?
Sandbox Server
Local Stream
Central Stream
What is P4Sandbox?
Central Server
Sandbox Server
Local Stream
Central Stream
Mirror Stream
What is P4Sandbox?
Central Server
Sandbox Server
Remote Depot?
Remote Depot.
2010.2
Remote Depot.
2010.22011.1
Remote Depot
Performance
Authenticated Remote User
Service User
2010.2
2011.1
Pull = Merge Down
Local Stream
Central Stream
Mirror Stream
How Does It Work?
p4 integrate: merge
Pull = Merge Down
Local Stream
Central Stream
Mirror Stream
How Does It Work?
p4 integrate (not yet)
p4 integrate: copy
Pull = Merge Down
Local Stream
Central Stream
Mirror Stream
How Does It Work?
p4 integrate (now)
Push = Copy Up
Local Stream
Central Stream
Mirror Stream
How Does It Work?
p4 integrate: copyp4 submit
Push = Copy Up
Local Stream
Central Stream
Mirror Stream
How Does It Work?
p4 submit (not yet)
p4 addp4 editp4 delete
p4 submit
branchintegratedelete
Push = Copy Up
Local Stream
Central Stream
Mirror Stream
How Does It Work?
p4 submit (okay, now)
Automatic Copy
Local Stream
Central Stream
Mirror Stream
How Does It Work?
p4 integrate: copy
Lightweight Branches
main
a
workspace
a
d d
=+c
b b
c
branch
Lightweight Branches
b! !
Just-in-Time Branching
Fast Branching
Easy Branching
1. p4 branch2. //depot/main/... //depot/branch/...
3. p4 client4. //depot/branch/... //client/branch/...
5. p4 integrate //depot/main/... //depot/branch/...6. p4 submit
p4 edit
Task/Feature Branches
Fast Context Switch
main
a
workspace
a
d d
=+c
b b
c
branch 1
Fast Context Switch
b
a
b
c
! !
d
main
a
workspace
a
d d
=+c
b b
c
branch 2
Fast Context Switch
c! !
main
a
workspace
a
d d
Fast Context Switch
Same depot files.
Do nothing.
Fast Context Switch
2011.1p4 client -s -S <stream>
p4 sync 10x
Faster *
* for unbranched files in lightweight branches
Connection Independent Versioning
Local Private Branching
Task Branching
top related