Changes

Jump to: navigation, search

Hints for Using SVN to collaborate on school projects

1 byte removed, 15:18, 27 September 2011
no edit summary
Under construction<br />This text is a "how to" document to be used with for using a graphical user interface with SVN, like . Interfaces include [[RabbitVCS]] for linux or , [http://www.rapidsvn.org/download/release/0.12/RapidSVN-0.12.0-8051.dmg RapidSVN] for Mac or , and [http://tortoisesvn.net/downloads TortoiseSVN] for Windows.<br />
Help making this better by adding SVN command line commands for examples.
== SVN Basics ==
|-- Team_Repository_Account
+--branches
| +-- member-id1 <-- this is the each student's home in within branches
| +-- Task1
| +-- Task2
==== Branches ====
* '''Branches''' is a common place directory for all team members' workspaces. * Each team member should create a home directory or '''workspace''' (member-id1, member-id2,...) for his their own development tasks in within branches. * The Each team-member's should divide their workspace is then divided in into several directories (workspaces) during the development of the project. These workspaces(Task1, Task2, ...) are usually copies of the '''trunk''' to be worked on.*: ''These directories(Task1, Task2,...) are called branches of trunk. Also Note that when When the word '''branch''' is used as a verb, it means copying the whole trunk into a subdirectory, either in '''Branches''' or '''tags'''.
==== Tags ====
* The '''tags''' directory holds '''copies''' of successful stages of '''trunk''' during throughout development. (''Also called as '''Milestones''''')* '''tags''' are never modified or edited. ''You may branch the a directory of tag into branches under a workspace and then modify it the branch and apply the changes back to trunk, but you should never change the contents of a tag should never change''
* The action of '''branching''' the trunk into '''tags''' is often referred to as a '''release'''.
* Most importantly, we We use the '''tags''' directory to submit the work to the professor to be markedfor marking. ''Your professor instructor will specify what are the requirements of a release.** A release is usual tagged by a version number like: R0.1, Prj0.2, As1_1.0 ** When a release is due, your instructor will always mark the latest version of that realease will be markedrelease. **: ''If R0.3 is due, and in '''tags''' R0.3, R0.31, R0.32 are present, then your instructor will mark R0.32 will be marked
==== Trunk ====
* '''trunk''' IS holds the project at in its current stagedstage, '''complied and run-able'''* '''trunk''' should never be at a hold non-complied stagecompiled code. (usually Usually trunk should be is the exact copy as (or better than) the last latest version in tags).
* If only one project is done within this repository, then trunk has no project level subdirectory and is the root of the project, otherwise, trunk is divided into several directories for each project to be version-controlled.
*: ''In this case Tags should also be divided to the exact same project directories as trunk''
=== Basic Actions ===
To explain basic actions we have to clear clarify a few facts and terminology:
*Responsibility of a code repository is to keep track of all the modifications done to a project by different members.
*:In other words, when a project handled by a code repository (version-controlled or in short versioned) you can track any changes done through the development life of the project; like who modified/added/deleted what and when. You can undo any work or rollback the work to any stage of the development and much more.
There are two possibilities to initiate a project:
# Start the project from zero
#: This is when you create a an empty project and start to write the code yourselffrom scratch
# Start the project by continuing an existing work
#: This is when you have someone else has started the project started by someone else (i.e. Professor, other team-members, etc.) and you want to copy the work into your own repository and continue the that work.
=== Start the Project from zero ===
For this you should create the basic framework of your project in trunk, and '''Add''' and '''Commit''' it. This is how you do this:

Navigation menu