Software Configuration Management

Tools Required

 * Google Code Login - see[]
 * SVN Tortoise Installation - see []

Establish Reposistory
See Google Code

Set up Libraries and Branches
Google code automatically will allocate the libraires : TRUNK BRANCHES TAGS and WIKI To set up specific development branches the SCM must check out the root of SVN

Checkout Root

 * to be finished

New Branch Creation

 * From the TRUNK working copy Right click and acces the Tortoise SVN menu
 * Select BRANCH/TAG




 * Enter the destination URL for the TAG (BRANCH)
 * Remember to update the Log message with reason for TAG (BRANCH)
 * Select the REvision required ( usually HEAD )
 * Select OK
 * The screen should report a succesfull copy.

Checkout and Commit for Developers
See Tortoise SVN wiki []

Iteration Complete Procedures

 * SCM checkouts the TRUNK

Merge Development Branches
After individual members of the development team have finished working on his or her products, the progress of each development branch must then be merged back together. This is done using the "merge" feature of tortoiseSVN. It should be noted that merging does not change the repository in any way, but instead updates your working copy, and thus it is a safe feature. The end result of the merge can then be committed back.

To merge a development branch into the local working copy :-
 * Checkout the trunk from the code repository or use the tortoiseSVN switch command to change the working directory to the trunk.
 * right click on this directory to reveal the SVN Tortoise menus
 * Select Merge branch menu item
 * Select the Merge from a range of revisions option


 * Under "URL to Merge From" field you must select the branch located in the codebase for which you want to merge into the trunk working directory (repeat these following processes as many times as necessary).
 * With a branch chosen to merge into the trunk, then select the SHOW LOG button next to the "Revision Range to Merge" or leave the field blank to merge all revisions.
 * Assuming you chose to view the revision log, select only the revision entries required for this merge. Usually the ones at the top without the already merged icon (merge arrows)
 * Select OK
 * Then select NEXT button
 * Select the Test Merge button - this gives a view of what will happen and any error messages. This is useful because it identifies any tree conflicts and invalid merge locations. Note: You cannot resolve any merge conflicts from the test window.
 * Select the MERGE button


 * The merge is applied and error messages are displayed if any conflicts occur. If you receive any conflicts please review the "conflicts" section of this wiki for further help. At this point the code is combined in the local working copy and is not active in the repository until the TRUNK is committed back to the repository.
 * Commit the trunk and specify the changes in the notes (in this case it is a branch merge).

Merge Conflict resolution
If conflicts occur while merging, you may then fix them using tortoisemerge. Conflicts occur when changes are made to the same files or folders by different project members. When someone attempts to merge a branch into the trunk, tortoiseSVN will list all conflicts which fall into two types: File Conflicts and Tree Conflicts. File conflicts occur when multiple changes have been made to the same line in a file. Tree conflicts occur when files are moved, added or deleted by one project member while another tries to update that same file. The procedure for fixing these conflicts differs.

If the conflict is a tree conflict, the following options are available: If the conflict is a File Conflict, the following procedures can be done:
 * Right click a conflict in the list and choose to edit it.
 * Tortoisemerge will open the file and display the different versions of the file in three panes.
 * The left pane represents the file as the other project member had edited it.
 * The right pane is your copy of the file, which in your case is the trunk file.
 * The bottom pane is the merge. Areas where conflicts exist are shown in red with ??? as a placeholder.
 * For each red line, you must right click on that line in either the THEIR copy or the MINE copy. Read each line carefully and accept the code you want to appear in the merged file. You can also choose to accept an entire file which updates the merge copy with all the changes in the file you selected.
 * When you have resolved all the conflicts in the file make sure you save the changes which will update the file in your working copy trunk folder.
 * Repeat these steps for each file conflict, taking care to select the correct change. Consult team members as well when mediating changes different users made.


 * When all conflicts have been resolved, it is highly suggested that you run scripts and test files to ensure that the changes were correct and that the final display is what all members think it should be.

Tag Release Creation
Creation of a TAG is very similar to the creation of a BRANCH
 * From the TRUNK working copy Right click and acces the Tortoise SVN menu
 * Select BRANCH/TAG




 * Enter the destination URL for the TAG (BRANCH)
 * Remember to update the Log message with reason for TAG (BRANCH)
 * Select the REvision required ( usually HEAD )
 * Select OK
 * The screen should report a succesfull copy.