21
edits
Changes
→Standard svn tree structure
==Continue working on a task (everyday work)==
=Standard svn tree structure=
=== Directory Structure ===
<big><pre>
|-- Team_Repository_Account
+--branches
| +-- member-id1 <-- this is a team member's home within branches
| +-- Task1
| +-- Task2
| +-- member-id2 <-- this is a team member's home within branches
| +-- Task1
| +-- Task2
| +-- Task3
| +-- member-id3 <-- this is a team member's home within branches
| +-- Task1
+--tags
| +-- R0.1
| +-- R0.11
| +-- R0.2
| +-- R0.21
| +-- ...
| +-- R0.5
| +-- ...
| +-- R1.0
| +-- R1.1
| +-- R1.2
| +-- R1.21
+--trunk
</pre></big>
==== branches ====
* '''branches''' is the common directory for all team members' workspaces.
* Each team member should create their own home directory or '''workspace''' (member-id1, member-id2,...) for their own development tasks within '''branches'''.
* Each team member should divide their workspace into several sub-directories (workspaces) during the development of the project. These workspaces(Task1, Task2, ...) are usually copies of the '''trunk''' to be worked on.
*: ''These sub-directories(Task1, Task2,...) are called branches of trunk. When the word '''branch''' is used as a verb, it means copying the whole '''trunk''' into a sub-directory, either in '''branches''' or '''tags'''.
==== tags ====
* '''tags''' is the directory that holds '''copies''' of successful stages of '''trunk''' throughout development. (''Also called as '''Milestones''''')
* '''tags''' are never modified or edited. ''You may branch a directory of tag into branches under a workspace and then modify the branch and apply the changes back to trunk, but you should never change the contents of a tag''
* The action of '''branch'''ing the trunk into '''tags''' is often referred to as a '''release'''.
* We use the '''tags''' directory to submit the work for marking. ''Your instructor will specify the requirements of a release.
** A release is usually 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 release.
**: ''If R0.3 is due, and R0.3, R0.31, R0.32 are present in '''tags''', then your instructor will mark R0.32
==== trunk ====
* '''trunk''' is the directory that holds the project in its current stage, '''complied and run-able'''
* '''trunk''' should never hold non-compiled code. Usually trunk is an exact copy (or better than) the latest version in '''tags'''.
* If the repository only contains one project, then trunk has no project level sub-directory and is the root of the project. Ifthe repository holds more than one project, trunk is divided into several sub-directories - one for each project.
*: ''In this case, we divide '''tags''' into exactly the same project sub-directories as present in '''trunk'''''
=Svn basic commands=