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?
Version Control. These two terms are used interchangeably. However, source control is specific to source code. Version control also covers large binary files and digital assets.
In revision control the emphasis is on managing the change (besides the version) while in version control the emphasis (obviously) is on managing versions which might not include merging, branching and so on.
The types of VCS are: Local Version Control System. Centralized Version Control System. Distributed Version Control System.
There are two types of version control: centralized and distributed.
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.
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:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With