Skip to Main Content

Research Data Management

Version Control

Version control is a method used to track file or file set changes over time so that you can recall older versions at a later time.

  • Version control records changes (additions, deletions, replacements) of individual files, tracks updates, and allows branching of projects that may be later integrated into the parent project.
  • File versioning can be as simple as using file naming conventions like suffixes *_v1, *v2, *vn, or you could use a version control software (VCS).
  • Version control software allows multiple people on a team to work together on the same project at the same time. It manages changes to all types of text-based files, like scripts and web pages as well as some proprietary digital formats. There are three advantages to version control software:
    • Infinite undos: VCS allows users to revert to a previous version of a file or file set to restore or recover a previous state of a program application or website. This allows you to restore accidentally deleted or overwritten files in a project, or to restore file sets from a prior version save.

    • Branching and experimentation: Allows you to test out new features in programming code or branch out on a different path without affecting your collaborator's work in the production code. Later, your branch can be merged in with the production, saved, or discarded as necessitated.

    • Collaboration: Collaborators can work locally on the file while the VCS handles the tasks of merging changes and keeping the files and directory trees in sync. The VCS also promotes accountability, tracking who's made which changes and when, so any questions about the changes can be followed up with the appropriate person.

Version Control Software
  • Git is a distributed version control tool that can manage a development project's source code history. Git is the most common and widely accepted version control software, which you can run locally on your computer.
  • GitHub is a web-based service for Git repositories (i.e., groups of tracked files). GitHub is commonly used for managing and sharing different versions of code for programming projects, but it can be used just as effectively for version control of other types of files, such as text documents. GitHub has a huge open-source community.
  • GitLab is an open source software that provides a Git repository hosting service and collaborative revision control. GitLab has project management, issue tracking, and free private repository hosting.
  • Bitbucket is a web-based version control repository hosting service owned by Atlassian, for source code and development projects that use Git. Bitbucket tends to have mostly enterprise and business users.
  • Apache Subversion is a server-client software versioning and revision control system. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation.
Version Control File Sharing Platforms
  • Box supports version history.
  • Microsoft 365 OneDrive includes a version history function that allows you to view and restore previous versions of a document.
  • Google Drive keeps track of each revision to the file with built-in version tracking and the ability to get back to earlier file version.
  • Open Science Framework (OSF) has built-in version control and retains all copies of a file added to OSF, and further provides access to versions of files stored on third-party storage providers. The wiki functionality also keeps a detailed log of all changes and who made them.