Upload
job-cuthbert-summers
View
219
Download
1
Tags:
Embed Size (px)
Citation preview
Subversion vs Git
April 2012
www.pwc.com/ca
A Software Configuration Management (SCM) Tool Comparison
www.pwc.com/ca
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Agenda
1.Business Context and High Level Goals
2.Evaluation Criteria and Methodology
3.Benefit summary of Git followed by its Evaluation
4.Benefit summary of Subversion followed by its Evaluation
5.Summary and Recommendation
6.Questions
Slide 3April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Business Context & Goals
Client: Recently acquired Enterprise Applications division within PricewaterhouseCoopers LLP (top 4 accounting firm) of Ottawa.
Top Goal/Objective: Acquire a SCM tool that will integrate with a variety of heterogeneous development platforms (i.e. .NET’s Visual Studio and Java’s Eclipse, amongst others).
Softgoals: •Tool must function in a Windows environment•Easy installation•Easy to learn•Supported Client constraint:•An open source tool from among Git and SVN
Client Rationale: These are really the two biggest contemporary open-source players in the market. Already used by huge software entities like Google, Linux, SourceForge, Ruby on Rails, etc Slide 4
April 2012
Criteria and Methodology
www.pwc.com/ca
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Criteria
Required Criteria
• File Type Support
- 66 file types both binary and ASCII.
• Integration to Visual Studio 2010
- Main development environment used by the EA group.
• Core Versioning Features
- Tag, merge, lock, branch, commit, search, history and checkout
Slide 6April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Criteria
High-Impact Criteria
•Comprehensive Documentation
• Installation and Configuration
- How many steps are needed to install and configure?
• Application Support
• Memory Usage
- Idle memory usage of running processes
• Dealing with File Conflicts
• User Interface
Slide 7April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Criteria
Low-Impact Criteria
• Cost
• Hard Disk Space Required
• Customizability
• Execution Time of Operations
- For branching, committing and checking out code.
Slide 8April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Methodology
Each High/Low-Impact Criteria:
• Is weighted based on importance
- High-Impact = 10
- Low-Impact = 5
• Given a percentage score value.
• Given a final score by multiplying the score by the weight.
Slide 9April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Methodology
Qualitative Criteria
• Percentage value based on satisfaction:
- Unsatisfied = 0%
- Weakly Satisfied = 25%
- Moderately Satisfied = 50%
- Strongly Satisfied = 75%
- Fully Satisfied = 100%
Slide 10April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Methodology
Quantitative Criteria
• Percentage is determined by dividing the value of the criterion divided by the maximum value obtainable.
• If there is no maximum value, it will be derived from the better scoring tool:
• SF is the final score which is obtained by dividing the minimum score by the measured score Sx multiplied by 100.
• This formula assumes that lower is better, which is the case for all quantitative criteria without a maximum value.
Slide 11April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Methodology
Final Score
• The score of each criteria is multiplied by the criterion weight.
• The calculated values are summed to a final value.
• This value is out of a maximum of 80 points.
• The tool with the highest score, which at least “Strongly Satisfies” all the required criteria, will be recommended.
Slide 12April 2012
Git Evaluation(Git and Git Extensions)
www.pwc.com/ca
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Some well known benefits of Git
Branching model: •Not limited to a clone in a new directory•Allows multiple local branches•Extremely fast and easy to create, delete and merge branches compared to other SCM toolsNote: Other SCMs can duplicate Git’s branching functionality but the process is often more complex and a lot slower
Speed:•Quicker in almost all operations than client-server tools because the repository is local•Built using low level C on a Unix kernel
Staging Area: •Added buffer zone called the staging area•Preview and commit even partial page changes versus all or nothing with other tools
Management Workflow:•Variety of repository management workflows: 1) Subversion-Style, 2) Integration Manager and 3) Integrator Sub-Integrator amongst others
Slide 14GApril 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Git Evaluation – Mandatory Criteria
Slide 15April 2012
Criteria Results Final Score File Types (.Net and Java) Supported 66/66 Pass
Integration Successful Pass
Major Features (Tagging, Merging, Branching, Committing, Browsing Transactions, Searching Repository, Locking)
7/8 features satisfied = 88% Pass
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Git Evaluation – High Impact Criteria
Slide 16April 2012
Criteria Results Final Score
Installation Steps-Extensions MSI wizard install: 25 steps-Repository install: 4 steps-Total Setup Steps: 29 steps
62%
Application Support
-Online knowledge base/forum-Only extensions application author email available for support-Base Git platform very extensive and exhaustive knowledge base support
75%
Temporary Memory (RAM, Cache, Swap)
Total Working Set = 25MB 56%
File Conflicts-Excellent conflict notification-Superlative diff comparison on multiple levels including the option of deploying your comparison editor of choice
100%
Documentation
-Git Extensions (Visual Studio) 37 page basic manual provided on install. -Git basic platform documentation is extensive and exhaustive (i.e. online, forums, ProGit, etc).
75%
User Interface
-Git Extensions interface is comprehensive, yet simple and intuitive-Visual Studio add-in top menu item and drop down menus available on objects is very good
100%
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Git Conflict Diff Tool
•Free-form versioned metadata ("properties").
– Subversion allows arbitrary metadata to be attached to any file or directory and are also versioned.
– Allows for bug tracking, custom logs, keywords, ignore lists etc.
•Branching and tagging are constant time operations.
• Executable flag is preserved.
• Costs are proportional to change size, not data size.
•Atomic commits
– No part of a commit takes effect until the entire commit has succeeded.
• Can checkout sub-directories only
Slide 17April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Git Extensions plug-in
Slide 18April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Git Evaluation – Low Impact Criteria
Slide 19April 2012
Criteria Results Final Score
Hard Disk Space-Git Extensions Dir. Size = 25 MB-Base Git Dir. Size (incl. repository) = 206 MB-Total = 231 MB
74%
Cost Free! 100%
Customizability-Several languages available-Hide/Show/Change display of features-Hot Keys-Lots more customization available
100%
Execution Time
-Checkout = 3 sec.-Create Branch = 3 sec.-Commit Branch =25 sec.-Total = 31 sec.
100%
Subversion Evaluation(VisualSVN and TortoiseSVN)
www.pwc.com/ca
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Some well known benefits of Subversion
•Free-form versioned metadata ("properties").
- Subversion allows arbitrary metadata to be attached to any file or directory and are also versioned.
- Allows for bug tracking, custom logs, keywords, ignore lists etc.
• Versions directories as well as files
• Can checkout partial repositories
• Locking is supported.
• Easier to learn than Git
Slide 21April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Subversion Evaluation – Mandatory Criteria
Slide 22April 2012
Criteria Results Final Score File Types (.Net and Java) Supported 66/66 Pass
Integration Successful Pass
Major Features (Tagging, Merging, Branching, Committing, Browsing Transactions, Searching Repository, Locking)
7/8 features satisfied = 88% Pass
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Subversion Evaluation – High Impact Criteria
Slide 23April 2012
Criteria Results Final Score
Installation Steps-VisualSVN/TortoiseSVN install: 11 steps-Configuration: 7 steps-Total setup steps: 18 steps
100%
Application Support-Online knowledge base with troubleshooting articles. -FAQ, tips, mailing list-Full 24/7 phone/email support for extra cost of $1000-$4000
100%
Temporary Memory (RAM, Cache, Swap)
Total Working Set = 14MB100%
File Conflicts-Conflict warning was given when attempting to merge. -Editor displayed both files and the local file allowing the user to choose which sections to keep.
100%
Documentation-VisualSVN is fairly basic but enough to set up the tool.-TortoiseSVN has a very comprehensive and detailed documentation.
100%
User Interface-Menu, Toolbar, right click menu, and circles indicating the state follow conventions making it very intuitive to use. -TortoiseSVN interface is also very clear and simple.
100%
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
TortoiseSVN Conflict Diff Tool
•Free-form versioned metadata ("properties").
– Subversion allows arbitrary metadata to be attached to any file or directory and are also versioned.
– Allows for bug tracking, custom logs, keywords, ignore lists etc.
•Branching and tagging are constant time operations.
• Executable flag is preserved.
• Costs are proportional to change size, not data size.
•Atomic commits
– No part of a commit takes effect until the entire commit has succeeded.
• Can checkout sub-directories only
Slide 24April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
VisualSVN plug-in
Slide 25April 2012
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Subversion Evaluation – Low Impact Criteria
Slide 26April 2012
Criteria Results Final Score
Hard Disk Space
-VisualSVN Dir. Size = 7.88 MB-TortoiseSVN Dir. Size = 25.8 MB-Repository Overhead = 138 MB-Total = 172 MB
100%
Cost $425 75%
Customizability
-Change repository location-Change languages-Custom repository-specific properties allowing for many different options.
100%
Execution Time
-Checkout = 1 sec.-Create Branch = 1 sec.-Commit Branch =50 sec.-Total = 52 sec.
60%
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Evaluation Summary
Slide 27April 2012
Satisfaction Score
Criteria Type Category Weighting Git SVN Git SVN
Required/Mandatory
File SupportN/A
100% 100% Pass Pass
Integration 100% 100% Pass Pass
Major Versioning 88% 88% Pass Pass
High Impact
Documentation
10
75% 100% 7.5 10
Installation 62% 100% 6.2 10Application Support 75% 100% 7.5 10Temporary Memory 56% 100% 5.6 10
File Conflicts 100% 100% 10 10
User Interface 100% 100% 10 10
Low Impact
Cost
5
100% 75% 5 3.75Footprint/Permanent Memory 74% 100% 3.7 5
Customizability 100% 100% 5 5
Execution Time 100% 60% 5 3
TOTAL 65.5 76.75
Comparison: Subversion vs GitPricewaterhouseCoopers LLP
Summary and Recommendation
•Both tools met the mandatory criteria
•However SVN scored 11.25 points higher than Git (14%).
•Therefore we recommend Subversion using:
- VisualSVN server
- TortoiseSVN integrated client
Slide 28April 2012
Questions?
This publication has been prepared for general guidance on matters of interest only, and does not constitute professional advice. You should not act upon the information contained in this publication without obtaining specific professional advice. No representation or warranty (express or implied) is given as to the accuracy or completeness of the information contained in this publication, and, to the extent permitted by law, PricewaterhouseCoopers LLP, its members, employees and agents do not accept or assume any liability, responsibility or duty of care for any consequences of you or anyone else acting, or refraining to act, in reliance on the information contained in this publication or for any decision based on it.
© 2012 PricewaterhouseCoopers LLP. All rights reserved. In this document, “PwC” refers to PricewaterhouseCoopers LLP, an Ontario limited liability partnership, which is a member firm of PricewaterhouseCoopers International Limited, each member firm of which is a separate legal entity.