Version control

When you work with different versions of a file it can be a challenge to locate the 'correct' version or to know how versions differ from each other. If not done well it can even be difficult to know which file preceded the other. The matter even complicates further when files are kept in multiple locations and multiple users edit these files. To avoid confusion and safeguard against accidental loss a versioning system can be put in place.

Methods of version control

Different approaches can be taken to provide version information about a file:

  • File names are a simple way to give information about the version/status of a file. This an be done by:
    • Including a date in the file name, e.g.: HealthTest-2008-04-06.docx
    • Including a version number in the file name, e.g.: HealthTest-00-02.docx or HealthTest-v02.docx
  • Version control tables: This is a table kept within the file itself or within a separate file including file history, version control table or notes. It is used to record versions, dates, authors and details of changes to files. (EXAMPLE).
  • Versioning software: specific software exists to systematically manage version information about files, e.g. git.

Version control software

Version control software comes in different forms and approaches:

  • Version control facilities within software (e.g. MS Office). 
  • Specialist versioning software (e.g. Git). Especially for code and scripts with expert facilities for collaboration through Github .
  • Special purpose platforms (e.g. Open Science Framework). Covers full research projects with focus on collaboration and transparency.

Best practices

When working with different versions of files try to take into account these tips:

  • Identify milestone versions of files to keep. Avoid clutter.
  • Use a systematic naming convention.
  • Record version and status of a datafile, e.g. raw, cleaned.
  • Document what changes are made to a file when a new version is created.
  • Document relationships between items where needed.
  • Track the location of files. When collaborating, use a common ‘workspace’ (i.e. shared folder, netshare) to avoid different versions of files lingering in different locations. 
  • Keep file-sharing out of e-mail