Table of Contents
- To download a working copy, see Subversion Clients listing
Using subversion to manage project materials allows the project members to be bold about making changes to the project's design files because:
- No information that enters a repository ever leaves, it just becomes out-of-date
- It allows members to track the status of a project against their own development
- It gives a safety net to the project members' efforts (see Backtracking)
- All material in files (especially text files) is tracable to a single author and commit time
If something breaks it can be back-tracked until it works again and the differences between the two versions can be examined to give insight into the problem.
Because versioning occurs at the repository level, a particular revision is a snapshot in time of all the files in the repository. This makes it easy to find problems that occur because of interrelationships between files.
The standard "cycle" for editing some part of a repository is to:
- Update the working copy
- Make changes
- Test changes if possible
- Commit changes
The time between update and commit is when problems can occur. This is the only time when changes to the local working copy are not visible by other project members (who may be editing their own working copies).
Although subversion has the notion of file locking, it is absolutely vital that project members communicate what they are working on within the repository. This problem has no good technological solution, but it does have the social solution of maintaining good communication between members.
The repositories within EDGE projects have certain paths that are special-purpose, and cannot be re-purposed for an individual project. These paths are:
- Only files in this directory are visible/editable from the web interface
- Any guest of a project may view any version of any file within this directory
- Any editor of a project is permitted to change files within this directory
- Permissions are inherited from /web
- Files here are visible by any non-restricted EDGE user
- /web/scripts - Superprojects only
- This directory has special node name masking properties
- Script files within this directory enable unrestricted, dynamic access to all facilities of any repository or database
- Scripts manage authorization internally