Lightweight Branching with Perforce Task Streams

1,095 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.

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
1,095
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lightweight Branching with Perforce Task Streams

  1. 1. Lightweight Branching with Perforce Task Streams
  2. 2. Steph Turner Gabe Weiss Perforce Software Perforce Software Lightweight Branching with Perforce Task Streams
  3. 3. The Demand From the Market… Faster Delivery of Product Lightweight Branching with Perforce Task Streams
  4. 4. The Impact on Development Code Quality Merge Hell Experimentation Feature Creep Lightweight Branching with Perforce Task Streams
  5. 5. The Solutions… Workflows Branching Tools Lightweight Branching with Perforce Task Streams
  6. 6. Perforce Lightweight Branching Some stuff we might know that you might not… Lightweight Branching with Perforce Task Streams
  7. 7. Perforce Branches Learning to walk before we run… Lightweight Branching with Perforce Task Streams
  8. 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. 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. 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. 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. 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. 13. The Metadata Upside… Tracks Branch Relationships Smarter & Safer Merges Lightweight Branching with Perforce Task Streams
  14. 14. The Metadata Downside… Performance Administration Branch Policy Restrictions Lightweight Branching with Perforce Task Streams
  15. 15. The Techniques to Control Metadata… Overlay (+) Mappings Obliterate Lightweight Branching with Perforce Task Streams
  16. 16. Overlay (+) Mappings Branch a Slice Code Base Archived Files branched Lightweight Branching with Perforce Task Streams Revs Integ 2x To and From
  17. 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. 18. The Overlay Issues… Where are my files? Where is the branch point? Lightweight Branching with Perforce Task Streams
  19. 19. Obliterate – Identify unnecessary metadata Archive Files Code Dev Branch Lightweight Branching with Perforce Task Streams Revs Integs To and From
  20. 20. Obliterate it! Archive Files Code Dev Branch Lightweight Branching with Perforce Task Streams Revs Integs To and From
  21. 21. The Obliterate Issues… Admin Privileges It’s Final Lightweight Branching with Perforce Task Streams
  22. 22. Lightweight Branching with Perforce Task Streams
  23. 23. Streams puts code into a container Code Base Server Swarm Archive Files P4V Lightweight Branching with Perforce Task Streams Revs
  24. 24. Streams “Import” is the key… Code Base Server Swarm Archive Files Server Swarm P4V Lightweight Branching with Perforce Task Streams Revs
  25. 25. 3 Cool Things About Streams Import Lightweight Protections Scheme Up-to-date Files Lean metadata Lightweight Branching with Perforce Task Streams
  26. 26. Oh yeah…1 more cool thing… Lightweight Branching with Perforce Task Streams
  27. 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. 28. Developers Fear the “Uns” Uncontrolled Merge Unstable Environment Unnecessary Recompiles Lightweight Branching with Perforce Task Streams
  29. 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. 30. Dev Branch Issues Metadata Performance Delete Lightweight Branching with Perforce Task Streams
  31. 31. Demo Time Task Streams Lightweight Lightweight Branching with Perforce Task Streams
  32. 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. 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. 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. 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. 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. 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. 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. 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. 40. Task Stream Guidelines Quick fix Short term feature development No reparenting No children Lightweight Branching with Perforce Task Streams
  41. 41. Try Perforce for Free Free for up to 20 users, 20 workspaces, forever. Lightweight Branching with Perforce Task Streams
  42. 42. THANK YOU!!! Steph Turner: sturner@perforce.com Gabe Weiss: gweiss@perforce.com Lightweight Branching with Perforce Task Streams P4Ideax Forums
  43. 43. NEXT DEV TALK Hacking Perforce with Matt Attaway Lightweight Branching with Perforce Task Streams

×