The contractor shall manage all assets (e.g., source code, automated tests, documentation, configuration files, etc.) using a ‘source code version control system’ and publish the assets to a repository owned by the government.
The US Digital Services playbook recommends using a ‘source code version control system’ while developing digital services. Source control, also known as version control, is a tool that tracks history of changes made to code base. History is recorded via a series of commits. Source control systems usually allow rolling back to previous states, which can be essential when bad code is commited to the code base accidentally. More information on the benefits and features of source control systems are described on Wikipedia.
In addition to providing rollback capabilities, source control is important for code bases with multiple contributors. Each commit encapsulates the intent of the change to the code base, and when two contributors edit the same file or even the same line, the version control system will recognize the conflict, preventing lost work.
Source control tools are also heavily used in modern software engineering as an integration point for other important tools. A commit to the master repository can trigger automated test builds, static analysis or even a deploy.
A code base
A central repository to act as the source of truth for the code base
Preheat - Prepare your repository for source control: Some binary files are not appropriate for source control. In the case of large binary files, the file changes cannot be comprehended easily by mere mortals, so recording the differences in the files looses its meaning. Also, binary files are often very large, requiring massive transfer bandwidth. Binaries are appropriate when an integral part of the history. For example, many images are relevant and changing resources in a web application. Omiting them from the repository would cause more pain than gain. Careful thought should go into what should be in and out of the repository. Source control tools allow ignoring files.
Learn your source control tool. Both recommended tools are open source with great tutorials and community support. You can get rapid benefits without having to fully know your tool.
Create a central repository to act and the source of truth. 18F uses git as a tool and hosts repositories via Github. Mercurial repositories can be likewise hosted on the service Bitbucket. It is possible to roll your own repository host on a server, but it is likely that the laws governing your digital content allow source control hosting via a cloud service.