390 likes | 537 Views
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. Business Context & Goals.
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