Wednesday, February 6, 2013

Tools for Web Development part 2 (Version Control)

Generally small organizations and indie developers tends to work either directly on live data or test servers without maintaining any specific backup system. The more organized people in this criteria are mostly taking backups using the directory of specific dates / project names  and/or archived hierarchy. The problem with this approach can be listed as missing backups, Full email inbox and drafts, making changes with confidence, Made updates directly on your production server, accidentally overwriting some files, which can never be retrieved again and working with a big team and blaming one another for bugs.

To overcome this version control systems are used. Talking about the advantages of the version control system includes the unified file structure and copies of same data with all team members, Changing the code with confident without being worried about the outcome, easily deploying the versions of the code having prototype or incremental builds, understanding when and by whom the change was done.

 Version control system is mostly based on the tracks of the file and directory structure. Depending on the version control it can track time and/or the changes specific to the comments, characters and the raw bytes. Most of the tracking systems works on creating the checkpoint(Stable point for project:may be empty directory at initial stage) , cloning the stable code, making changes and either commiting the code with new checkpoint or reverting back to the older version. Mostly such set of the files of a releted stuffs is called repository and creating the checkpoint is called commit. Each of the revision of the project can be uniquely identified as an integer id(1, 2, 3,) or the Hash code (346aaa8d3211gced3f8a936d9ba5c3ad345831e5).

we can post the whole list of blog posts for this topic so quickly moving to the various version control systems.


Cvs Screenshot
  cvs is the oldest player of the version control. The first release of the CVS was created in 1986. Google stull supports Usenet posts using CVS. CVS is not the fully featured like svn or other but simple enough to learn and usable as backup or file sharing.

the cvs is available as both command-line and  GUI based versions of the software available in various softwares like Tortoise CVS is great for the windows. Most of the current IDEs are capable enough to deal with CVS which may be by plugin or pee-build implementation Eclipse, NetBeans, Emacs and Xcode(Mac only).

SVN website screenshot
Subversion is the widest adopted version control system. It is full featured system including the exclusive community support. Even large projects like sourceforge, Python, Ruby and many also uses the SVN as the base repositories. Google code itself  uses subversion for distributing the sourcecode.

Subversion also have many of the clients available. They includes Tortoise SVN, Modern IDEs listed above and Mac specific versions


Github Screenshot
Git is having the fastest growing version control system. It was developed by linux creator Linus to maintain the Kernel Source tree. Git is well developed and maintained that is why it have lots of functionality which we have never seen before including push, pull, blame etc.
The biggest role in popularity of Git is its simplicity and Github. GitHub has provided the most attractive platform for open-source community. Github provides many of the off the self functionality for the users with both public open-source and commercial plans.

Now a days major open-source projects like Linux kernel,WINE,Fedora and websites like Facebook and Twitter uses the Git.

No comments:

Post a Comment