Source control (also known as version control, revision control, or source code management), is a class of systems responsible for managing changes to computer programs, documents, large websites, or other collections of information. It is a vital component of the modern software development process that provides a running history of code development and helps to resolve conflicts when merging contributions from multiple sources.
Source control systems allow developers to track code changes, see a revision history for their code, and revert to previous versions of a project when needed.
Because most source control systems can track changes and dependencies, you can even do version control within the application. Because of dependency tracking, you can fix bugs that might occur in old releases and have them propagate into newer releases as well, reducing the amount of time spent fixing critical bugs.
Team Work
Source control also enable collaboration on code with team members. It can isolate work until it is ready to be uploaded into the shared repository. Most source control systems allow you to quickly troubleshoot issues by identifying who made changes and what those changes were. This helps streamline the development process and provides a centralized source for all code.
Many forms of source control can spot conflicts that might arise if two people worked on the same code files. This can easily identify conflicts, and in some cases it may be able to auto-merge the files removing conflicts. Sometimes it will have to request assistance to see which version of a solution to use.
Forms of Source Control
There are several different source control systems. Each has its own strengths and weaknesses, and the choice of which one to use often depends on the specific needs and preferences of the development team. Some of the most popular ones include:
SVN (Apache Subversion): SVN is an open-source version control system that maintains source code in a central server. It uses a client-server model, which is an older style compared to the distributed model. SVN was initially intended to be a mostly compatible successor to CVS (Concurrent Versions System), which is itself a front end and expansion to Revision Control System (RCS), initially released way back in 1982.
Mercurial: Mercurial is another distributed version control system. It is a bit easier to use than some.
Team Foundation Version Control: Team Foundation Version Control (TFVC) is a centralized version control system provided by Microsoft as part of its Team Foundation Server (TFS) product. It follows the same format as Apache Subversion, with a central, authoritative server. TFS support is built into Visual Studio, and thus has a lot of support on enterprise clients.
Git and GitHub
One popular open-source distributed source code management system is Git. Git allows developers to create a copy of their repository known as a branch, work on their code independently from the stable version of the codebase, and store their changes as a set of differences known as a commit. Developers can pull in commits from other contributors to their repository, push their commits to others, and merge their commits back into the main version of the repository.
Overall, source control is an essential tool for software developers that helps them manage and track changes to their code, collaborate with others, and maintain a high-quality codebase.
GitHub is a popular website where you can find open source projects being shared online. This will allow you to download the source add your changes (if you have permission), branch the code into a new line, etc.
What is Source Control was originally found on Access 2 Learn