Skip to content

Source Control

Source control, also known as version control, is a system that manages changes to source code or other files over time. It allows multiple developers to work on the same codebase simultaneously without overwriting each other's work. Source control systems keep track of changes made to files, including who made the changes, when they were made, and what changes were made. This enables developers to roll back to previous versions of files, compare different versions of files, and collaborate effectively on codebases.

Common source control systems include Git, SVN, and Mercurial. The scientific computing team uses the Git source control system by default.

Branching Model

A source control branching model is a way to organize and manage changes to a codebase using a source control system. It defines how changes are made, reviewed, and integrated into the codebase. It is an agreed upon framework for working with software like Git.

By default, CompSci uses a model known as trunk-based development as the framework for how each project will implement their model. This methodology attempts to balance flexibility with standardization; only mandating processes specifically around releases while allowing flexibility in all other areas. CompSci also frequently uses the Git flow model.