Comparison: Subversion vs Git

Download Report

Transcript Comparison: Subversion vs Git

www.pwc.com/ca
Subversion vs Git
April 2012
www.pwc.com/ca
A Software
Configuration
Management (SCM)
Tool Comparison
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 3
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 4
www.pwc.com/ca
Criteria and
Methodology
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 6
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 7
Criteria
Low-Impact Criteria
• Cost
• Hard Disk Space Required
• Customizability
• Execution Time of Operations
- For branching, committing and checking out code.
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 8
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.
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 9
Methodology
Qualitative Criteria
• Percentage value based on satisfaction:
- Unsatisfied = 0%
- Weakly Satisfied = 25%
- Moderately Satisfied = 50%
- Strongly Satisfied = 75%
- Fully Satisfied = 100%
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 10
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.
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 11
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.
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 12
www.pwc.com/ca
Git Evaluation
(Git and Git
Extensions)
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 tools
Note: 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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 14G
Git Evaluation – Mandatory Criteria
Criteria
File Types (.Net and Java) Supported
66/66
Final Score
Pass
Integration
Successful
Pass
Major Features
(Tagging, Merging, Branching, Committing,
Browsing Transactions, Searching Repository,
Locking)
7/8 features satisfied = 88% Pass
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
Results
April 2012
Slide 15
Git Evaluation – High Impact Criteria
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, Total Working Set = 25MB
Cache, Swap)
File Conflicts
-Excellent conflict notification
-Superlative diff comparison on multiple levels including the option of
deploying your comparison editor of choice
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).
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
56%
100%
75%
100%
April 2012
Slide 16
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 17
Git Extensions plug-in
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 18
Git Evaluation – Low Impact Criteria
Criteria
Results
Final Score
Hard Disk Space
-Git Extensions Dir. Size = 25 MB
-Base Git Dir. Size (incl. repository) = 206 MB
-Total = 231 MB
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%
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
74%
April 2012
Slide 19
www.pwc.com/ca
Subversion
Evaluation
(VisualSVN and
TortoiseSVN)
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 21
Subversion Evaluation – Mandatory Criteria
Criteria
File Types (.Net and Java) Supported
66/66
Final Score
Pass
Integration
Successful
Pass
Major Features
(Tagging, Merging, Branching, Committing,
Browsing Transactions, Searching Repository,
Locking)
7/8 features satisfied = 88% Pass
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
Results
April 2012
Slide 22
Subversion Evaluation – High Impact Criteria
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, Total Working Set = 14MB
Cache, Swap)
100%
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 Git
PricewaterhouseCoopers LLP
April 2012
Slide 23
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 24
VisualSVN plug-in
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 25
Subversion Evaluation – Low Impact Criteria
Criteria
Hard Disk Space
Results
-VisualSVN Dir. Size = 7.88 MB
-TortoiseSVN Dir. Size = 25.8 MB
-Repository Overhead = 138 MB
-Total = 172 MB
Final Score
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 Git
PricewaterhouseCoopers LLP
April 2012
Slide 26
Evaluation Summary
Satisfaction
Criteria Type
Category
Weighting
Git
SVN
Git
SVN
100%
100%
Pass
Pass
100%
100%
Pass
Pass
Major Versioning
88%
88%
Pass
Pass
Documentation
75%
100%
7.5
10
Installation
62%
100%
6.2
10
75%
100%
7.5
10
56%
100%
5.6
10
File Conflicts
100%
100%
10
10
User Interface
100%
100%
10
10
Cost
100%
75%
5
3.75
74%
100%
3.7
5
Customizability
100%
100%
5
5
Execution Time
100%
60%
5
3
65.5
76.75
File Support
Required/Mandatory Integration
High Impact
Low Impact
TOTAL
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
Score
Application Support
Temporary Memory
Footprint/Permanent
Memory
N/A
10
5
April 2012
Slide 27
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
Comparison: Subversion vs Git
PricewaterhouseCoopers LLP
April 2012
Slide 28
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.