What is the difference between SCM and SVN? And how does git differ from mercurial?
SCM generally means Software Configuration Management, which include CMRM (Change Management up to Release Management), including versioning.
SVN is only a VCS: Version Control Tool.
So one is much more complete and covers more completely the development lifecycle, while being generic: Team Fundation Server or RTC - Rational Team Concert - are both examples of SCM.
SCM is Software Configuration Management and SVN is a Version Control System tool, which is a subset of SCM. VCS are also called Revision Control and Git, Mercurial are also VCS tools ( Distributed VCS to be more specific. )
SVN, Git, Mercurial, etc. are tools for revision control, one of the processes in SCM. SCM also includes build management, defect tracking etc.
SCM is a generic term that doesn't really mean much of anything. I've heard it as meaning "Software Configuration Management", "Software Change Management", and "Source Code Management", and there are probably others. It's basically marketing speak as far as I can tell.
If you view it as meaning something like the latter phrase, then SVN (abbrevation of Subversion), git, and Mercurial are all particular types of SCM systems. Git and Mercurial are roughly equivalent. There are slight differences, but personal preferences are really the majority of what matters. Both are what are called distributed revision control systems, meaning that no one central location must be relied upon. Each person using them can work independently, and they sync everything up more or less independently as well.
Subversion is centralized. It aims to solve the same sorts of problems, but does so by forcing all activity to go through one location that everyone uses. That makes a lot of things easier to manage, but at the cost of quite a large amount of flexibility. Again, personal preference dictates which you would prefer.
SVN (Subversion) is a tool that provides versioning functionality.Developers used this tool to check in their codes. Using this we can track down the changes made to the files/codes during the software development process.
Software Configuration Management is a practice that used to track down and control the changes in software development. It includes all the processes needed to build, package, and deploy software.
I've tried both Git and Mercurial (and at present use Mercurial). From what I've seen Git seems to be a little faster and perhaps more versatile, but that comes at a learning curve cost. When I tried them both out at first, I had no other co-workers to rely on for info and found the learning curve of Git a good deal steeper than that of Mercurial. Also I found Mercurial to be a good deal easier to use from Windows (which is my main dev platform).
Mercurial has support for Git and the opposite is probably true too, so you could probably try out either one and switch later if you found the need.
© 2022 - 2024 — McMap. All rights reserved.