Continuous Integration (TFS vs Open Source) Part-1
As you all know Continuous Integration is process to allow developer to integrate the code on daily basis to ensure there are no integration issues. The continuous Integration involves the following terms:-
- Source Control Management
- Build Management
- Deployment & Quality Control
There are lot of tools and software’s available in market for Continuous Integration. TFS is widely used tool for doing CI in Microsoft platform. In this blog I have tried to explore what open source tools we can use in place of TFS and by doing so what are the pros and cons of it. I will cover this topic in multiple parts, in this part -1 I am covering “Source Control Management” tools.
So before starting with the observations let me brief about the SCM. What is the need and use of using the SCM tools in software development?
Source Control Management:-
We often get confused with VCS- Version Control System, RCS- Revision Control System and SCM- Source Control Management. Are these terms are different or same? The Answer is “Yes” they are same. The only difference is understanding of the term, they all help us to manage our Source Code.
During the software development we always face day to day problems like:-
- Managing the source code of the project?
- How to segregate the different versions of the code?
- How to merge the code of two different developers working on same files?
So like the above mentioned problems we have lot of such issues, if we are not using SCM/VCS/RCS. These tools help us to solve all the problems.
So let’s come back to the main agenda, which one we should use TFS or Open Source. I have done some feature comparison based on some Open Source tools and TFS, and categorize them into the different categories, which help to choose the right one based on the need.
Open Source Tools Used: - Git, SVN and CVS
I have divided the features into the following categories:-
- Ease of Use.
- Richness of Features.
- Installation & Maintenance.
So I’ll provide you the data and the observation of tools in each category.
Legends | Description |
a | Available |
x | Not-Available |
Partially Available |
Ease of Use Category
http://3.bp.blogspot.com/-YS9W-hIrZmw/UQtnp1aOYKI/AAAAAAAACX4/pSIcIubv0V8/s640/EaseofUseTable.png |
Features Comparison based on "Ease of Use" Category. |
So if I rank all these features out of 5 then I’ll get the following data with charts.
Ranking of the Features. |
Graphical Comparison of Tools |
Note: - Based on above ranking and chart, we can say that the TFS is really best in case of “Ease Of Use” category followed by the “SVN”, “Git” and “CVS. So if you are going for “Ease Of Use” then TFS scores high and it’s the best in the comparison.
Richness Of Feature
Features Comparison Based on "Richness of Feature" Category. |
So if I rank all these features out of 5 then I’ll get the following data with charts.
Ranking of the Features |
http://4.bp.blogspot.com/-cIPfsQFeFLo/UQtnumU8HkI/AAAAAAAACYg/EcJ0cAgKu9w/s400/RichnessGraph.png |
Graphical Comparison of Tools |
Note:- Here in this Category “SVN” is really bypass the TFS with its feature richness.
Installation & Maintenance
http://3.bp.blogspot.com/-63DqfKxY0jI/UQtnuWFBC0I/AAAAAAAACYY/F7-6tRBDZQ4/s640/InstallationTable.png |
Features Comparison Based on "Installation & Maintenance" Category. |
So if I rank all these features out of 5 then I’ll get the following data with charts.
Ranking of the Features. |
http://1.bp.blogspot.com/-YDhRPotkjLc/UQtnuKPnGVI/AAAAAAAACYQ/ddIcezazzjc/s400/InstallationGraph.png |
Graphical Comparison of Tools. |
Note:- In this Category “Git” and “SVN” are the best.
**
**
**
**
**
**
Conclusion:- After doing all the comparison and ranking, I came to the conclusion that both TFS and Open Source are competing each other with very less margin of features and usability. So it all depends on the End user, in which category he is more interesting and one can pick the best option from that category after evaluating this blog.
*
Gourav Nayyar* Technical Lead
gourav.nayyar@happiestminds.com
*Happiest Minds Technologies Pvt. Ltd. *