Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What should NOT be under source control?

People also ask

What is not required to be version controlled?

So what should not be put in the version control and why? Build artifacts. This should be clear — build artifacts just do not belong to the version control. Having them there would mean that every time source code changes, all related build artifacts would also be updated.

What is source controlled?

Source control (or version control) is the practice of tracking and managing changes to code. Source control management (SCM) systems provide a running history of code development and help to resolve conflicts when merging contributions from multiple sources.

What are some of the benefits of source control?

Some benefits of source control are: It allows multiple developers to work on the same codebase. Developers can commit and merge code without conflicts. Developers can edit shared code without unknowingly overwriting each other's work.


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