Choosing a Project Type

May 16, 2017

One important choice when creating a new project is your choice of version control programs.  The Storehouse supports three programs: Git, Subversion, and Mercurial.  Each have strengths and weaknesses for certain project types and give you choice depending on your preferences and workflow.

Git / Mercurial

Git and Mercurial are both distributed version control systems.  Distributed means that each user has a complete copy of the project's history on their machine which makes many operations very fast.  A downside of a distributed version control programs is with large files.  Since users download the entire history of each project, it may be very large if your project has many large files.

Use Git or Mercurial if your project:

  • Is made up of small text files.
  • Will be collaborated on by many users at the same time.

Don't use Git or Mercurial if your project:

  • Has lots of binary files, that is files that aren't opened in a basic text editor.
  • Contains many large files.

Subversion

Subversion is a centralized version control program, meaning that the history of your project is kept centrally and users access it as needed.  An advantage to centralized version control is that users only have to download the latest copy of files.  This makes cloning the project quicker.  A downside is that many operations that are very fast on distributed systems are much slower on a centralized system, since the central project repository must be queried for many tasks.

Use Subversion if your project:

  • Has lots of binary files, that is files that aren't opened in a basic text editor.
  • Contains many large files.

Don't use Subversion if your project:

  • Will be collaborated on by many users at the same time.