Upload
perforce
View
786
Download
1
Embed Size (px)
DESCRIPTION
Ensuring product quality and engineering productivity in an Agile environment with numerous concurrent branches can be challenging. In this presentation, Yi Zhang of EMC will share his team's branch management lessons and discuss the merge tool they've developed based on P4PERL. Hear how EMC leverages this tool to try and achieve great code quality and high engineering productivity at the same time.
Citation preview
Branch Management and Atomic Merge in a Continuous Integration Environment Yi Zhang and Ray Chang EMC Corporation
© 2011
AGENDA
THE ISSUES • What’s Wrong? THE SOLUTIONS • The New Branch and Defect Model • The Atomic Merge Tool – Logical Flow • Integration with Defect-Tracking
CONCLUSIONS • Achievements • Remaining Issues
Q @ A
THE ISSUES – What’s wrong with this version tree?
THE ISSUES
• Anarchic Branching • Merge-phobia, unable to merge • Tremendous loss in productivity
Stubborn and egregiously harmful institutional habits formed over the years. Migrating to continuous integration exacerbated the issues.
THE SOLUTIONS – New Branch Model
• The branch model and naming conventions
THE SOLUTIONS – New Defect Model
• The defect model and Perforce directory structure
THE SOLUTIONS – The merge tool
• No significant change in merge habit • Improvement limited on the Defect-tracking side • Divergent branches still an issue
Based on “p4 integrate” of P4PERL, implemented an auto-merge tool to merge daily atomically among branches.
THE SOLUTIONS – The atomic merge tool
• Logical flow chart of the merge tool
THE SOLUTIONS – The atomic merge tool
A few assumptions: • Changelist restricted within a project branch • Merge occurred among the tips • Exclusions override the atomic rule
THE SOLUTIONS – Integration with defect-tracking
THE SOLUTIONS – The atomic merge tool
A few more points: • Web interface for ad hoc merge requests • Integration with the continuous integration tool • Running quality tool as a step of post-merge verification
CONCLUSIONS
Achievements: • A set of branching and merging policies are established and implemented • Atomic merge tool is successfully adopted by many teams and sites • Over 95% of automatic merge rate, significantly reduced manual work and enhanced productivity
CONCLUSIONS
Remaining issues: • How to prevent merge-up? • “p4 integrate” doesn’t always recognize duplicated check-ins. • Significant number of project teams not on board yet.
QUESTIONS @ ANSWERS