Source code management, or version control, is the practice of managing the revisions of a code with comments so that the code can be retrieved easily. The concept of version control systems (VCS) has been around for a long time. The first implementations were file-oriented, centralized, and without network access capability.
An evolution has come with Concurrent Versioning System (CVS) that was explicitly designed for collaborative development and had a merging mechanism instead of a locking-based one. The latest generation presents a major concept modification, that is, a complete decentralization.
This clearly seems more appropriate, for nowadays network-based systems are likely going to be the most used ones in the near future. A good versioning system should at least offer the following features:
The possibility to add, remove, rename, or delete files
The possibility to find which files have been altered by which user and when
The provision to keep track...