Lightweight Branching with Perforce Task Streams
-
Upload
perforce -
Category
Technology
-
view
455 -
download
2
description
Transcript of Lightweight Branching with Perforce Task Streams
![Page 1: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/1.jpg)
Lightweight Branching with Perforce Task Streams
![Page 2: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/2.jpg)
Lightweight Branching with Perforce Task Streams
Steph TurnerPerforce Software
Gabe WeissPerforce Software
![Page 3: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/3.jpg)
Lightweight Branching with Perforce Task Streams
The Demand From the Market…
Faster Delivery of Product
![Page 4: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/4.jpg)
Lightweight Branching with Perforce Task Streams
The Impact on Development
Code QualityMerge Hell
ExperimentationFeature Creep
![Page 5: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/5.jpg)
Lightweight Branching with Perforce Task Streams
The Solutions…
WorkflowsBranching
Tools
![Page 6: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/6.jpg)
Lightweight Branching with Perforce Task Streams
Perforce Lightweight Branching
Some stuff we might know that you might not…
![Page 7: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/7.jpg)
Lightweight Branching with Perforce Task Streams
Perforce Branches
Learning to walk before we run…
![Page 8: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/8.jpg)
Lightweight Branching with Perforce Task Streams
Code base has archive files & revision records
revxrevcxrevhxrevdx
100K 300K
Revs 3xArchive
Files
![Page 9: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/9.jpg)
Lightweight Branching with Perforce Task Streams
Branch creates revision & integ records
100K
200K
Revs 3xArchive
FilesInteg 2x
To and From
300K
300K
![Page 10: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/10.jpg)
Lightweight Branching with Perforce Task Streams
For every branch
100K
200K
Revs 3xArchive
FilesInteg 2x
To and From
300K
300K
200K300K
![Page 11: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/11.jpg)
Lightweight Branching with Perforce Task Streams
Even if
100K
200K
Revs 3xArchive
FilesInteg 2x
To and From
300K
300K
200K300K
200K300K
![Page 12: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/12.jpg)
Lightweight Branching with Perforce Task Streams
You don’t change a single file!
100K
200K
Revs 3xArchive
FilesInteg 2x
To and From
300K
300K
200K300K
200K300K
200K300K
![Page 13: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/13.jpg)
Lightweight Branching with Perforce Task Streams
The Metadata Upside…
Tracks Branch RelationshipsSmarter & Safer Merges
![Page 14: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/14.jpg)
Lightweight Branching with Perforce Task Streams
The Metadata Downside…
PerformanceAdministration
Branch Policy Restrictions
![Page 15: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/15.jpg)
Lightweight Branching with Perforce Task Streams
The Techniques to Control Metadata…
Overlay (+) MappingsObliterate
![Page 16: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/16.jpg)
Lightweight Branching with Perforce Task Streams
Overlay (+) Mappings Branch a Slice
branched
RevsInteg 2x
To and FromArchived
FilesCode Base
![Page 17: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/17.jpg)
Lightweight Branching with Perforce Task Streams
Overlay Branched Slice on Workspace
branched
RevsInteg 2x
To and FromArchived
FilesCode BaseWorkspace
![Page 18: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/18.jpg)
Lightweight Branching with Perforce Task Streams
The Overlay Issues…
Where are my files?Where is the branch point?
![Page 19: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/19.jpg)
Lightweight Branching with Perforce Task Streams
Obliterate – Identify unnecessary metadata
ArchiveFiles
IntegsTo and From
Dev Branch
Code
Revs
![Page 20: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/20.jpg)
Lightweight Branching with Perforce Task Streams
Obliterate it!
ArchiveFiles
IntegsTo and From
Dev Branch
Code
Revs
![Page 21: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/21.jpg)
Lightweight Branching with Perforce Task Streams
The Obliterate Issues…
Admin PrivilegesIt’s Final
![Page 22: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/22.jpg)
Lightweight Branching with Perforce Task Streams
![Page 23: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/23.jpg)
Lightweight Branching with Perforce Task Streams
Streams puts code into a container
P4V
RevsArchive
FilesSwarm
Server
Code Base
![Page 24: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/24.jpg)
Lightweight Branching with Perforce Task Streams
Streams “Import” is the key…
P4V
RevsArchive
FilesSwarm
Server
Code Base
Swarm
Server
![Page 25: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/25.jpg)
Lightweight Branching with Perforce Task Streams
3 Cool Things About Streams Import
Lightweight Protections SchemeUp-to-date FilesLean metadata
![Page 26: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/26.jpg)
Lightweight Branching with Perforce Task Streams
Oh yeah…1 more cool thing…
![Page 27: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/27.jpg)
Lightweight Branching with Perforce Task Streams
Workspaces generated from stream rules
P4V
RevsArchive
FilesSwarm
Server
Code Base
Swarm
Server
P4V
SwarmServer
![Page 28: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/28.jpg)
Lightweight Branching with Perforce Task Streams
Developers Fear the “Uns”
Uncontrolled MergeUnstable Environment
Unnecessary Recompiles
![Page 29: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/29.jpg)
Lightweight Branching with Perforce Task Streams
Workspaces generated from stream rules
P4V
RevsFileArchive
SwarmServer
Swarm
Server
P4V
Swarm
Server Integ To and From
![Page 30: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/30.jpg)
Lightweight Branching with Perforce Task Streams
Dev Branch Issues
MetadataPerformance
Delete
![Page 31: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/31.jpg)
Lightweight Branching with Perforce Task Streams
Demo Time
Task StreamsLightweight
![Page 32: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/32.jpg)
Lightweight Branching with Perforce Task Streams
Before task streams
P4V
RevsArchiveFiles
Swarm
Server
P4V
Swarm
Server Integ To and From
Parent Stream
Dev Stream
![Page 33: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/33.jpg)
Lightweight Branching with Perforce Task Streams
Now task metadata is put into shadow tables
P4V
RevsArchiveFiles
Swarm
Server
P4V
Swarm
ServerInteg To
and From
Parent Stream
Task Stream
![Page 34: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/34.jpg)
![Page 35: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/35.jpg)
Lightweight Branching with Perforce Task Streams
Archive and metadata for fileRevsArchive
Files
Integ To and From
Parent Stream
Task Stream
p#3p#3, t#1 p#3
t#1
t#1
![Page 36: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/36.jpg)
Lightweight Branching with Perforce Task Streams
Submit a new version of file…RevsArchive
Files
Integ To and From
Task Stream
p#3, t#1 p#3
t#1
t#2
t#2
t#2
![Page 37: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/37.jpg)
Lightweight Branching with Perforce Task Streams
Shadow integ & rev metadata copied to real tableRevsArchive
Files
Integ To and From
Task Stream
p#3, t#1 p#3
t#1
t#2
t#2
t#2
t#1t#2
![Page 38: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/38.jpg)
Lightweight Branching with Perforce Task Streams
Only interesting metadata gets copied!RevsArchive
Files
Integ To and From
Task Stream
p#3, t#1 p#3
t#1
t#2
t#2
t#2
t#1t#2
![Page 39: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/39.jpg)
![Page 40: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/40.jpg)
Lightweight Branching with Perforce Task Streams
Shadow integ & rev metadata copied to real tableRevsArchive
Files
Integ To and From
Task Stream
p#3, t#1 p#3
t#1
t#2
t#2
t#2
t#1t#2
Parent Stream p#3
![Page 41: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/41.jpg)
Lightweight Branching with Perforce Task Streams
Shadow integ & rev metadata copied to real tableRevsArchive
Files
Integ To and From
Task Stream
p#3, t#1 p#3
t#2
t#2t#1t#2
Parent Stream p#3
![Page 42: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/42.jpg)
![Page 43: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/43.jpg)
Lightweight Branching with Perforce Task Streams
Task Stream Guidelines
Quick fixShort term feature development
No reparentingNo children
![Page 44: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/44.jpg)
Lightweight Branching with Perforce Task Streams
Try Perforce for Free
Free for up to 20 users, 20 workspaces, forever.
![Page 45: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/45.jpg)
Lightweight Branching with Perforce Task Streams
THANK YOU!!!
Steph Turner: [email protected]
Gabe Weiss: [email protected]
P4Ideax Forums
![Page 46: Lightweight Branching with Perforce Task Streams](https://reader036.fdocuments.in/reader036/viewer/2022062319/555a2793d8b42a900d8b4973/html5/thumbnails/46.jpg)
Lightweight Branching with Perforce Task Streams
NEXT DEV TALK
Hacking Perforce withMatt Attaway