GIT VS. SVN? Erica Chang, a KIXEYE Quality Engineer and Hackbright Academy graduate blogs about Python programming! Erica Chang
KIXEYE Quality Engineer & Hackbright Graduate
Erica currently works at KIXEYE as a Quality Engineer embedded in the Analytics Engineering Team. Prior to that, she was an Engineering Fellow at Hackbright Academy and studied finance as an undergraduate at the University of California at Riverside. She blogs about her journey into Python programming at Start Up My Mind.
By Erica Chang (Hackbright Academy – fall 2012 class)
This week, I decided to dive into the differences between GIT vs SVN and here’s what I came up with!
What is the Difference Between Git and SVN?
While Git and SVN are both enterprise version control systems (VCS) that help with workflow and project management in coding, they do have their differences. The difference between Git and SVN version control systems is that Git is a distributed version control system, whereas SVN is a centralized version control system. Git uses multiple repositories including a centralized repository and server, as well as some local repositories. SVN does not have a centralized repository or server.
What is GIT?
Git is a distributed version control system – which just means that when you do a git clone (+url of your repository) what you are actually getting is a complete copy of your entire history of that project. This means all your commits! Woot!
What are the advantages of Git?
Git has a staging area. This just means that if you made 100 new changes to your code, you can break these 100 changes into 10 or 20 or more commits each with their own comments and their own detailed explanation of what just happened! Not only can you stage your commits out to logically display what changes were made, but you can also do patch staging that ask you if you want. You would use patch staging if you and a co-worker are both working on the same file and you only want to commit a particular function that you’ve worked on. You do a Git patch using “git add -p”
Git Work Flow
What is SVN?
Subversion (SVN) may be one of the most well known centralized version control systems. In Subversion or SVN, you are checking out a single version of the repository. With SVN, your data is stored on a central server. Having the entire history on your local repository just means that even when you are not connected to the Internet, you can still do commits, diffs, logs, branches, merges, file annotations, etc.
What are the advantages of SVN?
SVN has one central repository – which makes it easier for managers to have more of a top down approach to control, security, permissions, mirrors and dumps. Additionally, many say SVN is easier to use than Git. For example, it is easier to create a new feature. With Git, it takes an extra step to create a new feature. Others say that the way SVN is set up results in greater trunk stability, and having everything on a central server feels more controlled and secure for some.
SVN Work Flow
SVN vs Git
SVN allows you to check out sub-trees (or branches) only whereas Git requires you to check out the entire repository as a unit. This is because there is a .svn in each one of your folders while git only has one .git at the top level parent directory.
Is Git better than SVN?
Git and SVN are each viable workflow and version control systems, but for different reasons. Git may have more difficulty compressing and storing binary files, while SVN doesn’t as much. That said, many claim Git is better than SVN because it works well even for developers who aren’t always connected to the master repository, as it is available offline. Branching and merging support are also thought to be superior with Git. When it comes to disk space storage, it’s pretty close to equal between both SVN and Git repositories. Git is also a bit newer than SVN.
SVN vs Git: It’s up to you
I’m sure there are a lot more ways that GIT and SVN differ. If you take time to look for an example or two of how one or the other is best suited to your enterprise or workflow, you may have an easier time talking to management about getting the right VCS for your needs.
Until next time…
ABC – Always be coding!
This blog post was originally posted at Erica Chang’s blog.
- Admissions Office (24)
- Alum (90)
- Blog (149)
- Career Services (25)
- Diversity (17)
- Engineering Advice (56)
- Hackbright Field Trips (24)
- Hackbright Mentors (21)
- Hackbright News (105)
- Podcast (2)
- Profiles of Woman Engineers (97)
- Recruiting & Hiring (15)
- Resources (34)
- Student Blogs (24)
- Tech (49)
- Thought Piece (19)
- Uncategorized (2)
- Video (20)