GIT / SVN – Which is the Future? Presentation By – Ajeet Singh Raina
Nov 18, 2014
GIT / SVN – Which is the Future?
Presentation By – Ajeet Singh Raina
Version Control• Why Bother at all?
To remember versions
to maintain stable branches
to make patches
To document changes
to explain changes to new developers
to attribute good/bad changes
To find bugs
To cooperate with other developers
Version 1.1
Version 1.0
Version 2.0
Typo fix
New feature
Bug-fix
initial
Source Control Management
tracks changes to files repository /database of changes working directory / current state
Centralized SCM
server : single database client : working directory & state
Decentralized / Distributed SCM
anyone can be a server repository coupled with working directory complete history disconnected operation
Different SCM/CVS
Hosted Projects
Centralized VCS
SVN ( NetBeans,Mono, FreeBSD)
Decentralized VCS
Mercurial ( Mozilla, OpenSolaris)
Git ( Linux Kernel, Perl, KDE, Python, Android)
Where Centralized System Win?
• Single Repository Point
• Easy setting Up of Access Control
• Partial Checkout
• Good User Interface
Pitfalls
• If Centralized Repository goes down
• Branching and Merging
• Performance Issue
• Incomplete Merge Event Record
• Compression Tool
Where it Wins?
• Distributed Nature
• Cheap Local Branching
• Small Space Requirement
• Easy to Learn
• Easy Merging
• Any WorkFlow
Integrated Manager WorkFlow
1. Integration Manager – A Single Person who commits to the blessed Repository2. A Number of developers clone from the Repository, Ask integrator to pull in their changes.
Dictator & Lieutenants WorkFlow
• People are in charge of a specific subsystem of the project ( ‘lieutenants’)
• Another Integrator(‘the dictator’) can pull changes from his/her lieutenants, push to the ‘blessed’ repository.
Decentralized at a Glance..
Decentralized at a Glance..
Decentralized at a Glance..
Decentralized at a Glance..
Decentralized at a Glance..
Decentralized at a Glance..
Creating GIT Repository
How Branching is Easy?
Working on Branches
Working on Branches
Working on Branches
Working on Branches
Working On Branches
Working on Branches..
Working on Branches..
Working with Branches..
Working On Branches..
Working On Branches..
Working on Branches..
Working on Branches..
Working on Branches..
Working on Branches..
Working on Branches..
Working on Branches..
Working On Branches..
Working on Branches..
Working on Branches..
Conclusion
• With Decentralization,
Clients can commit changes while being offline
Complete copy of data is stored locally thereby fast compared to Centralized System.
Decentralized System is Flexible with various WorkFlows
Easy and Cheap Branching and Merging
References• Hosting: GitHub
References
• Links:
http://git.or.gz
http://github.com
http://git-scm.org
http://kernel.org/pub/software/scm/git/docs
Questions ??
My Recommendations..• Dictator & Lieutenants WorkFlow ( Among Developers)
• Integrated Manager WorkFlow ( Best among QA Tester)
• Easy Backup ( through Both 1 and 2)
• Submodules ( Alternatives to Large Project Checkout)