In Part 1 we downloaded or built from source control. In Part 2 we added UppercuT to our project. In Part 3 we set up the UppercuT configuration. In Part 4 we updated our reference folders if we needed to. In Part 5 we built our code successfully. Now we are ready get this into source control. Let's UppercuT our code!

Artifacts of the Build

UppercuT outputs some files and folders that should never be checked into source control. These are basically the same as what is in your bin directories with some differences. These folders/files should be excluded from source control.

build_output

The build_output folder is like the bin folder, but it’s the bin folder that puts every project in the solution’s output in this folder. Why not call it bin? We didn’t want to interfere with those projects that might have a top level bin folder.

code_drop

The code_drop folder is the nice packaging of the built application so that it is ready for deployment. Why code_drop? That’s a great question. The answer is that we had a lot of thoughts about what to call it, but in the end, code_drop seemed to make sense so we came back to it.

SolutionVersion.cs/SolutionVersion.vb

The SolutionVersion file is the file that changes with every build. It puts into it all of the common assembly elements. You can reference this file (using a link - see VersionBuilder) in every project and get the benefit of automatic versioning of your DLLs. If you are not using subversion or a continuous integration server, you can still get benefits of all of the other common elements by using the SolutionVersion file.

NOTE: A Visual Studio build will not work without SolutionVersion present (build.bat has been run at least once). Some people find it easier to go ahead and check that in on OSS projects to reduce the amount of confusion.

Check it In

Once we are building successfully, we need to get our changes updated in source control. NOTE: This is based on Subversion.

1. Open a commit dialog. Do not check in unversioned files. We have some files/folders that we don’t want to check in that are artifacts of the build.