What should NOT be under source control?

Anything that is generated. Binary, bytecode, code/documents generated from XML.

From my commenters, exclude:

  • Anything generated by the build, including code documentations (doxygen, javadoc, pydoc, etc.)

But include:

  • 3rd party libraries that you don't have the source for OR don't build.

FWIW, at my work for a very large project, we have the following under ClearCase:

  • All original code
  • Qt source AND built debug/release
  • (Terribly outdated) specs

We do not have built modules for our software. A complete binary is distributed every couple weeks with the latest updates.


OS specific files, generated by their file browsers such as Thumbs.db and .DS_Store


Some other Visual Studio typical files/folders are

*.cachefile 
*.backup 
_UpgradeReport_Files

My tortoise global ignore pattern for example looks like this

bin obj *.suo *.user *.cachefile *.backup _UpgradeReport_Files

files that get built should not be checked in