Version control

Versioning and archiving of processing routines

  • Version control has a liberating effect on software development.
  • Version control is an essential prerequisite
    to unequivocally identify the version of a routine employed.
  • Distributed version control systems facilitate their use
    and reduce external dependencies.
  • For a larger project, a clear work flow should be established
    and followed consequently.
  • Version control has the largest impact on how we program –
    besides automatic tests.

Why versioning?

What should be versioned?

What are prerequisites for ubiquitious versioning?

Beware: Versioning without version numbers is only half the battle.

Which tool to use

Note: This section is clearly opinionated. There are definitely other tools available. However, this is the tool the author recommends from own experience.

git – Everything is local
Wide-spread distributed version control system with excellent support

github.com
Largest development and code-sharing online platform, with free accounts

For local applications and given a minimum of infrastructure, Gitea - Git with a cup of tea is highly recommended as a fast and light-weight alternative to services such as GitLab. Gitea describes itself as a “painless self-hosted Git service” – and this really is true.