subversion vs git april 2012 . a software configuration management (scm) tool comparison

29
Subversion vs Git April 2012 www.pwc.com/ca

Upload: job-cuthbert-summers

Post on 25-Dec-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

Subversion vs Git

April 2012

www.pwc.com/ca

Page 2: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

A Software Configuration Management (SCM) Tool Comparison

www.pwc.com/ca

Page 3: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 4: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 5: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

Criteria and Methodology

www.pwc.com/ca

Page 6: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 7: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 8: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 9: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 10: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 11: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 12: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 13: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

Git Evaluation(Git and Git Extensions)

www.pwc.com/ca

Page 14: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 15: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 16: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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%

Page 17: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 18: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

Comparison: Subversion vs GitPricewaterhouseCoopers LLP

Git Extensions plug-in

Slide 18April 2012

Page 19: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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%

Page 20: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

Subversion Evaluation(VisualSVN and TortoiseSVN)

www.pwc.com/ca

Page 21: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 22: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 23: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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%

Page 24: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 25: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

Comparison: Subversion vs GitPricewaterhouseCoopers LLP

VisualSVN plug-in

Slide 25April 2012

Page 26: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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%

Page 27: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 28: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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

Page 29: Subversion vs Git April 2012 . A Software Configuration Management (SCM) Tool Comparison

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.