Advice on Which Files Don't Need to be under Version Control

Feb 26, 2011 at 4:59 AM

So far I've tended to just add the entire source code tree for my nHydrate-based projects to SVN. But it occurs to me that this is rather wasteful of disk space (and upload bandwidth/time) since all of the generated files can be recreated from the schema file.

It's easy enough to exclude the .Generated files using TortoiseSVN. But what about the files created in the installer project? Which of those should be under version control?

Feb 26, 2011 at 12:53 PM

This is the exclude pattern I use for subversion.

*Debug *Release *bin *Bin *obj *.user *.suo build _private _vti_cnf _vti_pvt _vti_script _vti_txt *.lib *.exp Debug Release debug release


I would not exclude the ".Generated" files. I know you can recreate them, but that is not the point in my opinion. When a new developer gets your development tree, he should be able to build, or just about it. All source code should be checked in. I simply exclude the binaries as you see like the "bin" and "obj" folders. Everything else I check in. Using what I describe a new developer would still need the nHydrate Core dll files in the bin folder (unless you decided to check them in) but that is it. You can keep all third party assemblies in a folder on the solution root called "ThirdParty" or "Libraries" or something. Those will be checked in because we do not exclude dll files but "bin" folders. So if you have dll files you want to be checked in just create some other folder.