Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Lightweight Branching with Perforce Task Streams

358
views

Published on

We're in the trenches developing software just like you, and we're excited to share our first-hand experiences using Task Streams. …

We're in the trenches developing software just like you, and we're excited to share our first-hand experiences using Task Streams.

Perforce's Task Streams open the door to lightweight branching without the administrative resources and performance overhead commonly associated with branching.

Join Perforce engineers, Steph Turner and Gabe Weiss as they discuss and demonstrate how Task Streams support software development best practices.

We'll show how Task Streams...

- Improve software quality
- Reduce complex merges
- Encourage experimentation
- Control scope


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
358
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Lightweight Branching with Perforce Task Streams
  • 2. Steph Turner Gabe Weiss Perforce Software Perforce Software Lightweight Branching with Perforce Task Streams
  • 3. The Demand From the Market… Faster Delivery of Product Lightweight Branching with Perforce Task Streams
  • 4. The Impact on Development Code Quality Merge Hell Experimentation Feature Creep Lightweight Branching with Perforce Task Streams
  • 5. The Solutions… Workflows Branching Tools Lightweight Branching with Perforce Task Streams
  • 6. Perforce Lightweight Branching Some stuff we might know that you might not… Lightweight Branching with Perforce Task Streams
  • 7. Perforce Branches Learning to walk before we run… Lightweight Branching with Perforce Task Streams
  • 8. Code base has archive files & revision records Archive Files 100K Revs 3x 300K revx revcx revhx revdx Lightweight Branching with Perforce Task Streams
  • 9. Branch creates revision & integ records Archive Files 100K Revs 3x Integ 2x To and From 300K 300K Lightweight Branching with Perforce Task Streams 200K
  • 10. For every branch Archive Files 100K Revs 3x Integ 2x To and From 300K 300K 200K 300K 200K Lightweight Branching with Perforce Task Streams
  • 11. Even if Archive Files 100K Revs 3x Integ 2x To and From 300K 300K 200K 300K 200K 300K 200K Lightweight Branching with Perforce Task Streams
  • 12. You don’t change a single file! Archive Files 100K Revs 3x Integ 2x To and From 300K 300K 200K 300K 200K 300K 200K 300K 200K Lightweight Branching with Perforce Task Streams
  • 13. The Metadata Upside… Tracks Branch Relationships Smarter & Safer Merges Lightweight Branching with Perforce Task Streams
  • 14. The Metadata Downside… Performance Administration Branch Policy Restrictions Lightweight Branching with Perforce Task Streams
  • 15. The Techniques to Control Metadata… Overlay (+) Mappings Obliterate Lightweight Branching with Perforce Task Streams
  • 16. Overlay (+) Mappings Branch a Slice Code Base Archived Files branched Lightweight Branching with Perforce Task Streams Revs Integ 2x To and From
  • 17. Overlay Branched Slice on Workspace Workspace Code Base Archived Files branched Lightweight Branching with Perforce Task Streams Revs Integ 2x To and From
  • 18. The Overlay Issues… Where are my files? Where is the branch point? Lightweight Branching with Perforce Task Streams
  • 19. Obliterate – Identify unnecessary metadata Archive Files Code Dev Branch Lightweight Branching with Perforce Task Streams Revs Integs To and From
  • 20. Obliterate it! Archive Files Code Dev Branch Lightweight Branching with Perforce Task Streams Revs Integs To and From
  • 21. The Obliterate Issues… Admin Privileges It’s Final Lightweight Branching with Perforce Task Streams
  • 22. Lightweight Branching with Perforce Task Streams
  • 23. Streams puts code into a container Code Base Server Swarm Archive Files P4V Lightweight Branching with Perforce Task Streams Revs
  • 24. Streams “Import” is the key… Code Base Server Swarm Archive Files Server Swarm P4V Lightweight Branching with Perforce Task Streams Revs
  • 25. 3 Cool Things About Streams Import Lightweight Protections Scheme Up-to-date Files Lean metadata Lightweight Branching with Perforce Task Streams
  • 26. Oh yeah…1 more cool thing… Lightweight Branching with Perforce Task Streams
  • 27. Workspaces generated from stream rules Code Base Server Swarm Server Server Swarm Swarm P4V P4V Lightweight Branching with Perforce Task Streams Archive Files Revs
  • 28. Developers Fear the “Uns” Uncontrolled Merge Unstable Environment Unnecessary Recompiles Lightweight Branching with Perforce Task Streams
  • 29. Workspaces generated from stream rules Server Swarm Server Swarm File Archive P4V Server Swarm P4V Lightweight Branching with Perforce Task Streams Revs Integ To and From
  • 30. Dev Branch Issues Metadata Performance Delete Lightweight Branching with Perforce Task Streams
  • 31. Demo Time Task Streams Lightweight Lightweight Branching with Perforce Task Streams
  • 32. Before task streams Server Swarm Archive Files Parent Stream P4V Server Dev Stream Swarm P4V Lightweight Branching with Perforce Task Streams Revs Integ To and From
  • 33. Now task metadata is put into shadow tables Server Swarm Archive Files Parent Stream P4V Server Task Stream Swarm P4V Lightweight Branching with Perforce Task Streams Revs Integ To and From
  • 34. Archive and metadata for file Archive Files Parent Stream Revs p#3, t#1 p#3 p#3 t#1 Task Stream t#1 Lightweight Branching with Perforce Task Streams Integ To and From
  • 35. Submit a new version of file… Archive Files Revs p#3, t#1 p#3 t#2 t#1 Task Stream t#2 Lightweight Branching with Perforce Task Streams t#2 Integ To and From
  • 36. Shadow integ & rev metadata copied to real table Archive Files Revs p#3, t#1 p#3 t#2 t#1 t#2 t#1 Task Stream t#2 t#2 Lightweight Branching with Perforce Task Streams Integ To and From
  • 37. Only interesting metadata gets copied! Archive Files Revs p#3, t#1 p#3 t#2 t#1 t#2 t#1 Task Stream t#2 t#2 Lightweight Branching with Perforce Task Streams Integ To and From
  • 38. Shadow integ & rev metadata copied to real table Archive Files p#3, t#1 p#3 t#2 Parent Stream Revs t#1 t#2 p#3 t#1 Task Stream t#2 t#2 Lightweight Branching with Perforce Task Streams Integ To and From
  • 39. Shadow integ & rev metadata copied to real table Archive Files p#3, t#1 p#3 t#2 Parent Stream Revs t#1 t#2 p#3 Task Stream t#2 Lightweight Branching with Perforce Task Streams Integ To and From
  • 40. Task Stream Guidelines Quick fix Short term feature development No reparenting No children Lightweight Branching with Perforce Task Streams
  • 41. Try Perforce for Free Free for up to 20 users, 20 workspaces, forever. Lightweight Branching with Perforce Task Streams
  • 42. THANK YOU!!! Steph Turner: sturner@perforce.com Gabe Weiss: gweiss@perforce.com Lightweight Branching with Perforce Task Streams P4Ideax Forums
  • 43. NEXT DEV TALK Hacking Perforce with Matt Attaway Lightweight Branching with Perforce Task Streams