Version Control Tools: SVN


Someone once said: The past cannot be changed, forgotten, edited, or erased. It can only be accepted. But then programming came into being and it stated that "you can change your past, but only the code past". Meaning; what you have coded earlier you can change, edit and improve it. And for that you need to have something like revision history, from where you can get the idea of what you have done (coded) in the past. 

Questioning..

So how would you keep the history of your code? Would you make several copies after doing each and every change? Or will you opt for "control/command + z"? Obviously you don't go for such an inefficient way of controlling the version/history of your code while working on some large project.

Answering...


So here comes "version control systems". These systems/softwares are specially designed to help you in controlling the version of your project codes. They also enable you to share your code and collaborate with other programmers as well. 
We have already covered one of these version control systems that is Git - GitHub. Similarly there are other VCSs that you can use, svn or Subversion is one of them.

In 2000-2001 CollabNet in collaboration with Apache software Foundation, created svn. Subversion is centralized version control system. Which means that your repositories will be on the server in the center and all the users can access the source code from that repository. In this way, users could get the source code as in file from that repository on their local machine (computer). Then users can make changes into the source code and afterwards commit that change into the original centralized repository. 

If svn is view at an abstract level then it would look like:

Subversion vs Git...

The biggest difference between Subversion and Git is, that Git is a distributed version control system, while svn is a centralized version control system. In Git, users can have their local copies of repositories on their own machines, but In svn, users can only have the code from the centralized repository into their local machines.
And Git has GitHub as a third party site where things could be shared publicly plus svn could get code from GitHub repository. Being a Centralized version control system, svn is a little more secure, and you could use svn for your sensitive projects. Git is also secure though. The cool thing is that both svn and Git are open source. You can collaborate to the very source code of it. What else needed!

There are other version control systems (VCSs) like mercurial and CVS. Although CVS is not in very much use now a days, as svn was it's replacement.

Significance of VCSs...

VCSs help us:
  • to Keep track of our code
  • to find what cause bug in our code (enable us to debug the code)
  • to collaborate with open source community
  • to share our project with the world
  • to promote Team Work...

So, I hope you have understood the basic concept of version control systems and it's importance. Start using these tools ASAP as they will help you in keeping track of your code in a better and in an efficient way... 







Comments

Popular posts from this blog

1-Machine Learning : Start...

Applications of Data Engineering

A Survey of the Final Year University Students

Data Engineering Tools

Habits to adopt in the freshman year

UI / UX Designs

Web Applications

How to take notes in Freshman Year ?

Hollow Diamond

Cloud Computing