Technical Game Development II
IMGD 4000 - B Term 2012

SVN Source Control Setup for Final Project

Please carefully follow the instructions below to do the initial setup of your Unity project with SVN source control. These instructions assume that you are using Unity Pro on PC and TortoiseSVN has been installed, which is the case for the machines in the IMGD lab. They also assume you are familiar with SVN and TortoiseSVN. (If you prefer to use the SVN command line client, see these instructions.)

If you are not familiar with SVN and/or you need to install it on your personal computer, please visit http:tortoisesvn.net. Documentation on using TortoiseSVN can be downloaded at Support/Docs tab or by typing F1 while running any TortoiseSVN dialog (Chapter 2 covers basic SVN concepts.) It is most convenient to do simple commit and update operations from inside MonoDevelop (see below), but TortoiseSVN is useful for tracking and comparing versions and other advanced operations.

Make sure that the IMGD 4500 students on your team have FusionForge accounts and show them how to check out your project and commit their assets.

This setup process is a bit touchy, but once you are set up, updates and commits are very straightforward using TortoiseSVN. Note that you will also conveniently be able to perform SVN operations directly in the MonoDevelop Solution window. (MonoDevelop automatically detects the presence of SVN files).

Once you you done this setup, never move, rename, add or delete Unity files directly in the File Explorer! Doing so can easily break the integrity of your project. All file changes can conveniently be done in the Unity Editor's project window.

  1. Confirm your group folder name by logging into the WPI FusionForge server in your browser and going to the b12 folder in the source repository for project titled "IMGD 4000/4500 Student Projects". In the following instructions replace our_folder by your group folder name.

  2. In the Unity Editor, select File > New Project to create a new project with your group folder name (see 1) in some convenient location. Do not check any of the packages to import (you can import the ones you actually use later in the editor using Assets > Import Package).

  3. In the Unity Editor, select Edit > Project Settings > Editor and choose "Meta File" option.

  4. Add a dummy asset to your new project (you can delete it later), e.g., in the Project window, select Create > Prefab.

  5. Quit the Unity Editor to ensure all files get saved and any temporary data goes away.

  6. Navigate in the File Explorer to the new project folder you just created. Delete the Library subfolder and also the temp subfolder if it is there.

  7. Right click on the project root folder and select Import from the TortoiseSVN menu. In the URL field type in:

    https://fusion.wpi.edu/svn/imgd4000-4500/b12/our_folder

    where our_folder is your group folder name, and then click OK to upload your files to the repository.

  8. Delete the root project folder you just created in your local file system.

  9. Use the TortoiseSVN Checkout command to check out a fresh copy of your project from the repository (in same location) using the url given in step 7 above.

  10. The remaining steps are optional but highly recommended. What they do is guarantee that you will not be bothered in SVN about changes in various Library files that are not supposed to be committed to the repository.

  11. Open the Unity Editor again, Select File > Open Project, navigate to the project folder you just checked out and wait while it rebuilds its Library files. Then quit Unity again.

  12. In the File Explorer, right click on the root folder of the project and select Commit from the TortoiseSVN menu.

  13. Under the "Changes made" section that pops up, you'll see many non-versioned files in the Library subfolder. Select the Library folder. Right click on it and select Add to Ignore List > Ignore by Name.

  14. Now commit all the files in the project. The only thing that should happen is updating of the ignore properties---no files should actually be uploaded.