=== Welcome to the Sandbox! === Welcome to the Modlab Sandbox repository. Here, you're welcome to practice and experiment with the different features of SVN without worrying about causing trouble - no serious or important work will ever be stored here. === Workflow === A simple suggested workflow is outlined below. == Getting started == If you're reading this online and have not already made a local copy of the sandbox repository, you can do so by opening up your command line and 'checking out' the repository. This is done by using the svn co command and telling it the location of the repository. IE: $ svn co http://svn.modlabupenn.org/sandbox --username= For this repository, the guest username is available. Executing this command will make a directory named 'sandbox' in your current working directory. The contents of this directory are the current contents of the repository. == Simple Workflow == From now on, every time you want to do work you can follow this simple workflow. 1. Before starting work, update your current copy of the repository to get any changes made by other team members since you last worked. $ svn up 2. Now, go ahead and do work on files within the repository. 3. When you make a significant change that you want to add to the project, make sure it is tested. Then: 4a. If you've introduced new files to the project, you first need to add them to the repository. Files aren't automatically added because often times we don't want some types of files added (ie: .o files when building C projects, etc). $ svn add 4b. Now that all of the new files are tracked (the old files were already tracked, so they're good too) we should update our repository again to make sure no changes teamates have committed while we were working conflict with our own changes. $ svn up If there are problems, we need to use a tool such as meld to tell SVN whose changes we want to keep. 5. Finally, with any merge conflicts fixed we can commit our changes. The most important thing here is that your commit message describe exactly what you changed, and preferably why. Saying something along the lines of "Changed " does not provide useful information. Be specific about your changes and their justification (IE: "Found bug in option parsing where the --limit= option had its argument truncated to its integer component, disallowing non-integer limits to be set from the command line.") $ svn commit -m'Some really useful, informative commit message' (NOTE: -m option is 'message' option. If it is left off, the default text editor will open up for you to write a message into.')