FLL NXT Navigation Approach to Managing Software Repository

Coordinator
Dec 30, 2008 at 1:37 AM
Edited Dec 30, 2008 at 8:49 PM

FLL NXT Navigation’s Approach to Version Control

 

FLL NXT Navigation (FNN) uses Codeplex’s Subversion based repository to store all source code, release files, and documentation (see https://fllnxtnavigation.svn.codeplex.com/svn).

 

FNN uses a single repository for the entire project that follows the standard pattern of /trunk, /branches, and /tags folders with the addition of  /reference and /releases folders to track anything that is released on the web site (i.e. executable zip or installation files, videos, or podcasts).

 

The /release folder allows FNN to have separate internal tags for marking any desired milestones and for specific releases like those found on the Release tab of the FNN site on Codeplex (http://www.codeplex.com/fllnxtnavigation/Release/ProjectReleases.aspx?ReleaseId=21107).

 

FNN Use of Branches and Tags

  • Most (if not all) of the development will be done on the main trunk
  • Tags are used for releases and any internal milestone that bears remembering
  • Releases are for anything placed in the Codeplex /release folder
  • Branches are used for significant changes to the code base
  • Expect a branch for each First Lego League competition season (2008, 2009, …)
  • Branches are also used for trying out potential solutions, new approaches, or new developers, without tying up the main trunk for everyone else

 

FNN, Subversion, and Microsoft Visual C++ 2008 Express Edition

FNN was created and is currently maintained in Microsoft Visual C++ 2008 Express Edition.  This entirely free and very capable integrated development environment (IDE) does not support a direct plug-in with Subversion (or any revision control system that we could find).  However, by using TortiseSVN and using a strategy of managing the entire Visual C++ solution’s folder there is a straightforward to get the advantages of the free IDE and the very capable Subversion.

 

The details below are geared toward Windows users.

 

  • Consider watching the intro to Subversion videos by Jeremy Wosborne (http://www.youtube.com/watch?v=-h6cj6O94Gs).  Jeremy walks you through how to use TortiseSVN on a local machine that will be similar to how to use TortiseSVN to develop with FNN.

 

  • Download and install TortiseSVN for Windows

 

For Developers Who Want To Experiment with FNN at Home and Outside of the Main Trunk:

Key Steps for Interacting with FNN’s Repository:

  1. Check out the entire Visual C++ solution folder from the repository (https://fllnxtnavigation.svn.codeplex.com/svn) to a local working directory using the TortiseSVN.   There are a number of ways to do this.  I like to use TortiseSVN Repo-Browser (from the right mouse context menu) to navigate to the desired file in the trunk and then use the checkout feature.
  2. Navigate to the local working directory and open up the solution file (i.e. FLL_NXT_Navigation.sln)
  3. Use Visual C++ to modify code, resources, windows, recompile, etc.
  4. Have fun and post some messages on how it is working for you.

 

For Developers Who Want To Experiment with FNN at Outside of the Main Trunk And Want to Contribute Back to the Open Source Baseline:

Key Steps for Interacting with FNN’s Repository:

  1. Use TortiseSVN to copy the latest version to a /branch/yourusername folder using the TortiseSVN Repo-Browser\copy to … command.
  2. Check out the entire Visual C++ solution folder from the new branch folder to a local working directory using the TortiseSVN.   There are a number of ways to do this.  I like to use TortiseSVN Repo-Browser (from the right mouse context menu) to navigate to the desired file in the trunk and then use the checkout feature.
  3. Navigate to the local working directory and open up the solution file (i.e. FLL_NXT_Navigation.sln)
  4. Use Visual C++ to modify code, resources, windows, recompile, etc.
  5. Close the solution in Visual C++ (to avoid file locking conflicts)
  6. Navigate to the parent of the local working directory, notices that TortiseSVN displays a green check if nothing was changed in either a file or the entire folder, or a red mark if a file was changed somewhere in the folder.
  7. Assuming that the local working directory has a red mark on its folder icon, right mouse click on the folder icon and select the TortiseSVN “SVN Commit …” menu item.
  8. Fill in the message log prompt (always fill in the message log prompt!) and press ok, making sure the SVN includes all the files, sometimes it auto-ignores the exeutables and compile related files.
  9. Notify the development team if your changes are candidates for merging into the main trunk.