SlideShare a Scribd company logo
- SEARCH FOR THE BEST RCS
vs vs
Vinoth Kumar Kannan
Vinoth.kannan@widas.de
THE NEED
Why do we need a Revision
Control System(RCS) ?
• Storing
• Retrieval
• Logging
• Identification
• Merging of revisions
THE CHALLENGERS
Apache Subversion
- Centralized version control system
Mercurial
- Python Distributed version control system
- Linux based Distributed version control system
MATCH 1
• Centralized Version
Control Systems
(DVCS)
 Central, authoritative repository
 All changes saved in one single
location
 Client-Server approach
• Distributed Version
Control Systems
(DVCS)
 Everyone has their own repository
 You get the safety net of frequent
check-ins without having to worry
about „breaking the build‟.
 Clients can make changes in the
repositories and those changes will be
local to them unless they synchronize
with someone else.
 Depending on the requirements, Git
also offers a centralized repository
SVN Dataflow Git Data Flow
Working
Dir
Remote
Repository
Online Source Control
 User must be online in order to
commit to the repository from
the working copy.
Offline Source Control
 Clients can commit changes to their
localized repositories as new
revisions even while being offline
Longer time to store
because all of the
data is stored in a
centralized repository.
 Extremely Fast
Complete copy of the data is stored
locally in the client‟s system
 Very less network
response time
 SVN help is more
organized
 There is some time wasted
since it is difficult to get a
quick reference from Git’s
search.
More Storage Space
 Two copies of a file in the
working directory of SVN
 One copy is used for storing the
actual work while the other copy
hidden in .svn/ contains the
information used to aid operations
(status and commit)
 When there are a lot of
documents, there is a huge impact
on disk space in the SVN
compared with Git
Less Storage Space
 Has an efficient memory because
the data‟s file format is compressed
 Git has a small index file to store the
info related to a particular file
Creating and working
on branch/Merge is
complex and difficult
to use
 Simple and Easy to use branch and
Merge
 The working directory of a developer
is itself a branch.
Sequencial Commits
 Data is lost when simultaneous
commits of two or more working
copies are performed
Non-Sequencial Commits
 Large number of users can put data to
the same repository
 No need to worry about data lost or
immediate merging of others changes
Merge
 The facility to merge data is also
there in SVN, but it is somewhat
incomplete
 SVN merge records seem to miss
some of the important details that
Git keeps track of.
Merge
 Users to have control over the merging
of data in synchronized repositories.
 Merges are always pulled by someone
and nobody can push to commit
merges in someone else’s repository.
Revision Tracking
 SVN keeps record of files
 File history is lost on renaming
 Fixed by giving a file unique
long lived id
Revision Tracking
 Git keeps track of contents.
 Even a small change in content it tracks
it as a separate change.
 Git needs a global check of the project
to determine changes
Particially Checkout
 Checkouts at subdirectory level
are possible.
Only Full Checkout
 Git will not allow you to checkout a
subdirectory.
 Instead, the user will have to checkout
the whole repository.
Simple usablity
 Simpler to learn
• create, commit and checkout
 Single central "master-repository”
Complex usablity
 Two modes of creating repositories
• checkout vs. clone
• commit vs. push.
 You have to know which commands
work locally and which work with "the
server“
 Git has more concepts and more
commands.
 many Git commands are cryptic, and
error messages are very user-
unfriendly
Projects using SVN Projects using Git
BitBucket
Gitorious
Codeplex
MATCH 1 RESULT
3 : 7
VIDEO
http://www.youtube.com/watch?v=_yQlKEq-Ueg&feature=player_embedded
MATCH 2
Steep Learning Curve
 Mercurial's terminology and
commands are closer to
Subversion and CVS,
 Easier to migrate
Flat Learning Curve
 More commands
 More options
 The volume can be intimidating to
new users
Clean Windows Support
 Mercurial is Python based
 The official distribution runs cleanly
under Windows (as well as Linux,
Mac OS X, etc).
Indirect Windows Support
 Git has a strong Linux heritage
 Official way to run it under Windows
is to use cygwin
 Not so ideal from the perspective of a
Windows user
 A MinGw based port of Git is gaining
popularity, but Windows still remains
a “second class citizen” in the world
of Git.
Client Storage Management
 If a branch is in the local repository,
then all of its revisions (back to the
very initial commit) must also be
present
Client Storage Management
 Git allows previously pulled branches
to be discarded.
 Git also allows old revision data to be
pruned from the local repository
(while still keeping recent revision
data on those branches).
Slightly slower Branching
 Branching, merging and tagging
systems are equally powerful and
only slightly slower.
Faster Branching , but…
 Slightly faster
 Suffers irregular heavy performance
drops
Bob clones this repo, and ends up with a complete, independent, local
copy of Alice's store and a clean checkout of the tipmost revision d in his
working directory:
Creating Branch and Merging in
Mercurial (1)
Creating Branch and Merging in
Mercurial (2)
Creating Branch and Merging in
Mercurial (3)
Pull
Merge
Commit
Creating Branch and Merging in
Mercurial (4)
Limited Number of Parents
 Allows only two parents.
Unlimited Number of Parents
 Git supports an unlimited number of
parent revisions during a merge
No Maintenance
 Mercurial does not require any
maintenance.
 A lot less sophisticated with
respect to managing the clients
disk space
Needs Maintenance
 Git requires periodic maintenance of
repositories
 Need to run the commad git -gc
 The Manual of Git Says : “Users are
encouraged to run the above
mentioned task on a regular basis
within each repository to maintain
good disk space utilization and good
operating performance.”
Immutable History
 Structured more as an ever-
growing collection of objects
whose state cannot be changed
after they are created
Histories can be
changed….
 Git is extremely powerful, and will do
almost anything you ask it to.
 Unfortunately, this also means that
Git is perfectly happy to lose history.
 For example,the command
git-push --force
can result in revisions becoming lost
in the remote repository.
Integration
 GOOD HTTP SUPPORT: Mercurial
has very good support for HTTP
based stateless pushing and pulling
of remote repositories.
 Less number of client – server calls
 All of the relevant information is
bundled into a single large transfer.
Integration
 Git includes support for HTTP pulls
(and WebDAV pushes), but the
implementation assumes that the
server knows nothing about Git.
 It is designed such that you can have
a Apache simply serve the Git
repository as static content.
 This method requires numerous
synchronous round trip requests
Fans Fans
The following Web sites provide free source code
hosting for Git repositories
Summary
 In terms of implementation effort,
Mercurial has a clear advantage
due to its efficient HTTP transport
protocol.
 Much faster if the team size is not
large
 Eclipse supports Mercurial with
the MercurialEclipse plugin.
Summary
 In terms of features, Git is more
powerful, but this tends to be offset
by it being more complicated to use.
 Social coding : Popular and More
suited for shared open source project
involving many users.
 Eclipse supports Git with
the EGit plugin.
SCREENSHOT OF TORTOISE HG GUI
CLIENT HISTORY
MATCH 2 RESULT
? : ?
WHO DO YOU THINK WON?
• Reference
 http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/
 http://code.google.com/p/support/wiki/DVCSAnalysis
 http://www.ericsink.com/entries/hg_denzel.html
 http://www.rockstarprogrammer.org/post/2008/apr/06/differences-
between-mercurial-and-git/
 http://en.wikipedia.org/wiki/Mercurial
 http://www.wikivs.com/wiki/Git_vs_Mercurial

More Related Content

What's hot

DevOps: Infrastructure as Code
DevOps: Infrastructure as CodeDevOps: Infrastructure as Code
DevOps: Infrastructure as Code
Julio Aziz Flores Casab
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
Tilton2
 
GIT presentation
GIT presentationGIT presentation
GIT presentation
Naim Latifi
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucketSumin Byeon
 
Understanding the Python GIL
Understanding the Python GILUnderstanding the Python GIL
Understanding the Python GIL
David Beazley (Dabeaz LLC)
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e Git
Igor Steinmacher
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
Luigi De Russis
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineeringYuffie Valen
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
MohanRaviRohitth
 
Devops and git basics
Devops and git basicsDevops and git basics
Devops and git basics
Sourabh Saxena
 
Git collaboration
Git collaborationGit collaboration
Git collaboration
Pham Quy (Jack)
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
Brice Fernandes
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
André Justi
 
Android Architecture.pptx
Android Architecture.pptxAndroid Architecture.pptx
Android Architecture.pptx
priya Nithya
 
A look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architectureA look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architecture
Aimee Maree Forsstrom
 
Git basics
Git basicsGit basics
Git basics
GHARSALLAH Mohamed
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
OlinData
 
Git hub ppt presentation
Git hub ppt presentationGit hub ppt presentation
Git hub ppt presentation
AyanaRukasar
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
Mohammad Imam Hossain
 

What's hot (20)

DevOps: Infrastructure as Code
DevOps: Infrastructure as CodeDevOps: Infrastructure as Code
DevOps: Infrastructure as Code
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
 
GIT presentation
GIT presentationGIT presentation
GIT presentation
 
Android Multimedia Support
Android Multimedia SupportAndroid Multimedia Support
Android Multimedia Support
 
Git with bitbucket
Git with bitbucketGit with bitbucket
Git with bitbucket
 
Understanding the Python GIL
Understanding the Python GILUnderstanding the Python GIL
Understanding the Python GIL
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e Git
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineering
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
 
Devops and git basics
Devops and git basicsDevops and git basics
Devops and git basics
 
Git collaboration
Git collaborationGit collaboration
Git collaboration
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Android Architecture.pptx
Android Architecture.pptxAndroid Architecture.pptx
Android Architecture.pptx
 
A look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architectureA look at FastCgi & Mod_PHP architecture
A look at FastCgi & Mod_PHP architecture
 
Git basics
Git basicsGit basics
Git basics
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
 
Git hub ppt presentation
Git hub ppt presentationGit hub ppt presentation
Git hub ppt presentation
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
 

Viewers also liked

Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
neuros
 
Getting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS UsersGetting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS Users
Noam Kfir
 
Git basic commands
Git basic commandsGit basic commands
Git basic commands
Adarsh Konchady
 
Know the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhubKnow the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhub
Edureka!
 
Moving to Git
Moving to GitMoving to Git
Moving to GitTim Moore
 
Training: Day Two - Eclipse, Git, Maven
Training: Day Two - Eclipse, Git, MavenTraining: Day Two - Eclipse, Git, Maven
Training: Day Two - Eclipse, Git, Maven
Artur Ventura
 
Why we ditched TFS and embraced Git, Github, TeamCity and Myget
Why we ditched TFS and embraced Git, Github, TeamCity and MygetWhy we ditched TFS and embraced Git, Github, TeamCity and Myget
Why we ditched TFS and embraced Git, Github, TeamCity and Myget
Dennis Doomen
 
Lets git to it
Lets git to itLets git to it
Lets git to it
Yoram Michaeli
 
From svn to git
From svn to gitFrom svn to git
From svn to git
Nehal Shah
 
Mercurial
MercurialMercurial
Mercurial
Kiev ALT.NET
 
Mercurial DVCS presentation to DevJam 11/4/2009
Mercurial DVCS presentation to DevJam 11/4/2009Mercurial DVCS presentation to DevJam 11/4/2009
Mercurial DVCS presentation to DevJam 11/4/2009
Ted Naleid
 
Mercurial training
 Mercurial training Mercurial training
Mercurial training
Trung Huynh
 
Virt monitoring
Virt monitoringVirt monitoring
Virt monitoring
Amadou tidiane Diallo
 
Git: A Getting Started Presentation
Git: A Getting Started PresentationGit: A Getting Started Presentation
Git: A Getting Started PresentationNap Ramirez
 
Git Introduction
Git IntroductionGit Introduction
Git Introduction
Anil Wadghule
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Lukas Fittl
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
Suman Mukherjee
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
Prem Aseem Jain
 

Viewers also liked (20)

Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Getting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS UsersGetting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS Users
 
Git basic commands
Git basic commandsGit basic commands
Git basic commands
 
Know the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhubKnow the Science behind WorkFlows using Git & GitHhub
Know the Science behind WorkFlows using Git & GitHhub
 
Moving to Git
Moving to GitMoving to Git
Moving to Git
 
Training: Day Two - Eclipse, Git, Maven
Training: Day Two - Eclipse, Git, MavenTraining: Day Two - Eclipse, Git, Maven
Training: Day Two - Eclipse, Git, Maven
 
Why we ditched TFS and embraced Git, Github, TeamCity and Myget
Why we ditched TFS and embraced Git, Github, TeamCity and MygetWhy we ditched TFS and embraced Git, Github, TeamCity and Myget
Why we ditched TFS and embraced Git, Github, TeamCity and Myget
 
Lets git to it
Lets git to itLets git to it
Lets git to it
 
From svn to git
From svn to gitFrom svn to git
From svn to git
 
Mercurial
MercurialMercurial
Mercurial
 
Mercurial DVCS presentation to DevJam 11/4/2009
Mercurial DVCS presentation to DevJam 11/4/2009Mercurial DVCS presentation to DevJam 11/4/2009
Mercurial DVCS presentation to DevJam 11/4/2009
 
Mercurial training
 Mercurial training Mercurial training
Mercurial training
 
Virt monitoring
Virt monitoringVirt monitoring
Virt monitoring
 
Git: A Getting Started Presentation
Git: A Getting Started PresentationGit: A Getting Started Presentation
Git: A Getting Started Presentation
 
Git Introduction
Git IntroductionGit Introduction
Git Introduction
 
Mercurial 簡介
Mercurial 簡介Mercurial 簡介
Mercurial 簡介
 
Puppet_training
Puppet_trainingPuppet_training
Puppet_training
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git vs svn
Git vs svnGit vs svn
Git vs svn
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 

Similar to Svn vs mercurial vs github

Version Control with Git
Version Control with GitVersion Control with Git
Version Control with GitSahil Agarwal
 
Git
GitGit
Git 101
Git 101Git 101
Git 101
jayrparro
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Ram0603
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
Betclic Everest Group Tech Team
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
Chen-Tien Tsai
 
Git hub_pptx
Git hub_pptxGit hub_pptx
Git hub_pptx
PathanNadhiyaSulthan
 
Git Tutorial
Git Tutorial Git Tutorial
Git Tutorial
Ahmed Taha
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
Sergey Aganezov
 
Part 4 - Managing your svn repository using jas forge
Part 4  - Managing your svn repository using jas forgePart 4  - Managing your svn repository using jas forge
Part 4 - Managing your svn repository using jas forge
Jasmine Conseil
 
Git and Github - A primer
Git and Github - A primerGit and Github - A primer
Git and Github - A primer
Suryakumar Sudar
 
Git the fast version control system
Git the fast version control systemGit the fast version control system
Git the fast version control system
Jeroen Rosenberg
 
Presentation on Repository Control System
Presentation on Repository Control SystemPresentation on Repository Control System
Presentation on Repository Control System
Md. Mujahid Islam
 
Git And Git Hub.pptx
Git And Git Hub.pptxGit And Git Hub.pptx
Git And Git Hub.pptx
MishalBibi
 
Whether you should migrate to git
Whether you should migrate to gitWhether you should migrate to git
Whether you should migrate to git
Amit Anand
 
Version control with GIT
Version control with GITVersion control with GIT
Version control with GIT
Zeeshan Khan
 
Understanding GIT / Bitbucket training
Understanding GIT / Bitbucket training Understanding GIT / Bitbucket training
Understanding GIT / Bitbucket training
rafiksayed
 
FLOSS.pptx
FLOSS.pptxFLOSS.pptx
FLOSS.pptx
ShreyasKB2
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
Vikram SV
 

Similar to Svn vs mercurial vs github (20)

Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
 
Git
GitGit
Git
 
Git 101
Git 101Git 101
Git 101
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Git hub_pptx
Git hub_pptxGit hub_pptx
Git hub_pptx
 
Git Tutorial
Git Tutorial Git Tutorial
Git Tutorial
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
 
Part 4 - Managing your svn repository using jas forge
Part 4  - Managing your svn repository using jas forgePart 4  - Managing your svn repository using jas forge
Part 4 - Managing your svn repository using jas forge
 
Git and Github - A primer
Git and Github - A primerGit and Github - A primer
Git and Github - A primer
 
Git the fast version control system
Git the fast version control systemGit the fast version control system
Git the fast version control system
 
Presentation on Repository Control System
Presentation on Repository Control SystemPresentation on Repository Control System
Presentation on Repository Control System
 
Git And Git Hub.pptx
Git And Git Hub.pptxGit And Git Hub.pptx
Git And Git Hub.pptx
 
Whether you should migrate to git
Whether you should migrate to gitWhether you should migrate to git
Whether you should migrate to git
 
Version control with GIT
Version control with GITVersion control with GIT
Version control with GIT
 
Git version control
Git version controlGit version control
Git version control
 
Understanding GIT / Bitbucket training
Understanding GIT / Bitbucket training Understanding GIT / Bitbucket training
Understanding GIT / Bitbucket training
 
FLOSS.pptx
FLOSS.pptxFLOSS.pptx
FLOSS.pptx
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 

Recently uploaded

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 

Recently uploaded (20)

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 

Svn vs mercurial vs github

  • 1. - SEARCH FOR THE BEST RCS vs vs Vinoth Kumar Kannan Vinoth.kannan@widas.de
  • 2. THE NEED Why do we need a Revision Control System(RCS) ? • Storing • Retrieval • Logging • Identification • Merging of revisions
  • 3. THE CHALLENGERS Apache Subversion - Centralized version control system Mercurial - Python Distributed version control system - Linux based Distributed version control system
  • 5. • Centralized Version Control Systems (DVCS)  Central, authoritative repository  All changes saved in one single location  Client-Server approach • Distributed Version Control Systems (DVCS)  Everyone has their own repository  You get the safety net of frequent check-ins without having to worry about „breaking the build‟.  Clients can make changes in the repositories and those changes will be local to them unless they synchronize with someone else.  Depending on the requirements, Git also offers a centralized repository
  • 6. SVN Dataflow Git Data Flow Working Dir Remote Repository
  • 7. Online Source Control  User must be online in order to commit to the repository from the working copy. Offline Source Control  Clients can commit changes to their localized repositories as new revisions even while being offline
  • 8. Longer time to store because all of the data is stored in a centralized repository.  Extremely Fast Complete copy of the data is stored locally in the client‟s system  Very less network response time
  • 9.  SVN help is more organized  There is some time wasted since it is difficult to get a quick reference from Git’s search.
  • 10. More Storage Space  Two copies of a file in the working directory of SVN  One copy is used for storing the actual work while the other copy hidden in .svn/ contains the information used to aid operations (status and commit)  When there are a lot of documents, there is a huge impact on disk space in the SVN compared with Git Less Storage Space  Has an efficient memory because the data‟s file format is compressed  Git has a small index file to store the info related to a particular file
  • 11. Creating and working on branch/Merge is complex and difficult to use  Simple and Easy to use branch and Merge  The working directory of a developer is itself a branch.
  • 12. Sequencial Commits  Data is lost when simultaneous commits of two or more working copies are performed Non-Sequencial Commits  Large number of users can put data to the same repository  No need to worry about data lost or immediate merging of others changes
  • 13. Merge  The facility to merge data is also there in SVN, but it is somewhat incomplete  SVN merge records seem to miss some of the important details that Git keeps track of. Merge  Users to have control over the merging of data in synchronized repositories.  Merges are always pulled by someone and nobody can push to commit merges in someone else’s repository.
  • 14. Revision Tracking  SVN keeps record of files  File history is lost on renaming  Fixed by giving a file unique long lived id Revision Tracking  Git keeps track of contents.  Even a small change in content it tracks it as a separate change.  Git needs a global check of the project to determine changes
  • 15. Particially Checkout  Checkouts at subdirectory level are possible. Only Full Checkout  Git will not allow you to checkout a subdirectory.  Instead, the user will have to checkout the whole repository.
  • 16. Simple usablity  Simpler to learn • create, commit and checkout  Single central "master-repository” Complex usablity  Two modes of creating repositories • checkout vs. clone • commit vs. push.  You have to know which commands work locally and which work with "the server“  Git has more concepts and more commands.  many Git commands are cryptic, and error messages are very user- unfriendly
  • 17. Projects using SVN Projects using Git BitBucket Gitorious Codeplex
  • 21. Steep Learning Curve  Mercurial's terminology and commands are closer to Subversion and CVS,  Easier to migrate Flat Learning Curve  More commands  More options  The volume can be intimidating to new users
  • 22. Clean Windows Support  Mercurial is Python based  The official distribution runs cleanly under Windows (as well as Linux, Mac OS X, etc). Indirect Windows Support  Git has a strong Linux heritage  Official way to run it under Windows is to use cygwin  Not so ideal from the perspective of a Windows user  A MinGw based port of Git is gaining popularity, but Windows still remains a “second class citizen” in the world of Git.
  • 23. Client Storage Management  If a branch is in the local repository, then all of its revisions (back to the very initial commit) must also be present Client Storage Management  Git allows previously pulled branches to be discarded.  Git also allows old revision data to be pruned from the local repository (while still keeping recent revision data on those branches).
  • 24. Slightly slower Branching  Branching, merging and tagging systems are equally powerful and only slightly slower. Faster Branching , but…  Slightly faster  Suffers irregular heavy performance drops
  • 25. Bob clones this repo, and ends up with a complete, independent, local copy of Alice's store and a clean checkout of the tipmost revision d in his working directory: Creating Branch and Merging in Mercurial (1)
  • 26. Creating Branch and Merging in Mercurial (2)
  • 27. Creating Branch and Merging in Mercurial (3) Pull Merge Commit
  • 28. Creating Branch and Merging in Mercurial (4)
  • 29. Limited Number of Parents  Allows only two parents. Unlimited Number of Parents  Git supports an unlimited number of parent revisions during a merge
  • 30. No Maintenance  Mercurial does not require any maintenance.  A lot less sophisticated with respect to managing the clients disk space Needs Maintenance  Git requires periodic maintenance of repositories  Need to run the commad git -gc  The Manual of Git Says : “Users are encouraged to run the above mentioned task on a regular basis within each repository to maintain good disk space utilization and good operating performance.”
  • 31. Immutable History  Structured more as an ever- growing collection of objects whose state cannot be changed after they are created Histories can be changed….  Git is extremely powerful, and will do almost anything you ask it to.  Unfortunately, this also means that Git is perfectly happy to lose history.  For example,the command git-push --force can result in revisions becoming lost in the remote repository.
  • 32. Integration  GOOD HTTP SUPPORT: Mercurial has very good support for HTTP based stateless pushing and pulling of remote repositories.  Less number of client – server calls  All of the relevant information is bundled into a single large transfer. Integration  Git includes support for HTTP pulls (and WebDAV pushes), but the implementation assumes that the server knows nothing about Git.  It is designed such that you can have a Apache simply serve the Git repository as static content.  This method requires numerous synchronous round trip requests
  • 33. Fans Fans The following Web sites provide free source code hosting for Git repositories
  • 34. Summary  In terms of implementation effort, Mercurial has a clear advantage due to its efficient HTTP transport protocol.  Much faster if the team size is not large  Eclipse supports Mercurial with the MercurialEclipse plugin. Summary  In terms of features, Git is more powerful, but this tends to be offset by it being more complicated to use.  Social coding : Popular and More suited for shared open source project involving many users.  Eclipse supports Git with the EGit plugin.
  • 35. SCREENSHOT OF TORTOISE HG GUI CLIENT HISTORY
  • 36.
  • 38. WHO DO YOU THINK WON?
  • 39. • Reference  http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/  http://code.google.com/p/support/wiki/DVCSAnalysis  http://www.ericsink.com/entries/hg_denzel.html  http://www.rockstarprogrammer.org/post/2008/apr/06/differences- between-mercurial-and-git/  http://en.wikipedia.org/wiki/Mercurial  http://www.wikivs.com/wiki/Git_vs_Mercurial