390 likes | 545 Views
A comprehensive comparison of Subversion and Git for a top accounting firm's SCM tool selection, assessing criteria, benefits, and methodologies. Determine which tool best meets business objectives and technical requirements.
E N D
Subversion vs Git April 2012
Agenda • Business Context and High Level Goals • Evaluation Criteria and Methodology • Benefit summary of Git followed by its Evaluation • Benefit summary of Subversion followed by its Evaluation • Summary and Recommendation • Questions Comparison: Subversion vs Git
Business Context & Goals • Client: Recently acquired Enterprise Applications division within Great Accounting Corp. 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
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
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
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
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
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
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
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
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
Git Evaluation – Mandatory Criteria Comparison: Subversion vs Git
Git Evaluation – High Impact Criteria Comparison: Subversion vs Git
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
Git Extensions plug-in Comparison: Subversion vs Git
Git Evaluation – Low Impact Criteria Comparison: Subversion vs Git
Great Accounting Corporation 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
Subversion Evaluation – Mandatory Criteria Comparison: Subversion vs Git
Subversion Evaluation – High Impact Criteria Comparison: Subversion vs Git
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
VisualSVN plug-in Comparison: Subversion vs Git
Subversion Evaluation – Low Impact Criteria Comparison: Subversion vs Git
Evaluation Summary Comparison: Subversion vs Git
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