Source control vs. Revision Control?
Which is the correct name for a system which stores versions of source code, like SVN or TFS?
I've always called it source control, but places like Wikipedia calls it revision control?
To make this more complicated sites like this one have a tag for both?
Revision Control is the more generic term, used for source-control tools but also for other tools (Word, OpenOffice, ...). It references a version.
Source Control offers revision control with branching and merging which are not always available in all revision tools (Word is not a Source Control, but offer revision control features)
Version Control is a more general term than Source Control in that it manages version of anything (sources or binaries, or any kind of documents)
Note: SCM stands for Source Code Management, but also for Software Code Management, to reflect the same idea (not just "sources" are managed).
Plus SCM introduces the notion of dependencies between group of files.
And it can also includes the notion of change lifecycle (start a change, close a change, ...) which leads to change request system.
I like to think of it this way:
Revision Control is what they do.
Source Control is what I use them for.
:-)
There are three synonyms describing almost the same thing:
diff
, diff3
, patch
, etc. This set of tools can be extended to form source control solution. Example of such solution is RCS. repository
with the possibility of creating separate branches
. It is also assumed that branches can be merged
. Another part of source code management is tagging
. One problem with source code management is that it has abbreviation SCM. This abbreviation is used to describe more broad set of activities - Software Configuration Management. There's a lot of confusion because source code management is a subset of software configuration management which also deals with such activities as build management, deployment management, continuous integration, dependencies management, release management, etc. Picture to illustrate more clearly distinction between all of these concepts:
链接地址: http://www.djcxy.com/p/92240.html上一篇: 为什么git submodules与svn externals不兼容?
下一篇: 源代码管理与版本控制?