As a more advanced user of the EDGE web site, you may want to begin sharing project files with your team-mates. In general you may want to share two different kinds of files, including
- Wiki pages for simple communication between team members and visitors to your site
- Working documents intended only for internal design and development by members of the team, or for use by members of closely related teams.
If you have been using the "Edit" feature to modify wiki pages for your project, then you have already been using the subversion package. If you have not been editing wiki pages yet, then you should probably get some practice doing that before trying to attempt this level of sophistication. (Once you have "editor" privileges for your project website, you can edit wiki pages).
In this page, we are focusing on the second case, and will study an example.
For our example, let's assume that Ed and Kate are working on a mechanical design together. Ed is responsible for all components on subsystem B, and Kate is responsible for all components on subsystem A. However, Ed is developing a 3-d solid model of a mechanical component, such as pillow block to be used to retain a shoulder bearing. Ed is using a solid modeling package, such as Solidworks. Ed creates his solid model on his own computer, and saves the parts file (PillowBlock.step) in an industry standard STEP format on his local hard disk. The pillow block, an integral part of subsystem B, needs to be mounted onto Kate's subsystem A.
Now Ed wants to share this file with his team-mate, Kate, who is going to add some clearance holes to the base of the Pillow Block so that Ed's component can mate with the vehicle frame which is part of the subsystem A that Kate is designing. Kate uses Pro-Engineer for her work.
In many design groups, this type of problem is encountered on a daily basis. Without proper document control, and revision control, it becomes very difficult to insure that the Pillow Block originally designed by Ed, and then modified by Kate, can have strong design integrity. Subversion is a document control system and version control system that helps team members keep track of their collaborative efforts. However, subversion CAN ONLY WORK WELL if the team members are in regular communication with one another about who is making changes to files, and why they are doing so.
For this example, we assume that you are running Windows on a PC, and have installed the TortoiseSVN Graphical User Interface Client on your computer. After installing your local client, you can access the TortoiseSVN menus by using the right button on your mouse. For the sake of illustration, let's assume that you have created a dedicated directory on your computer on the C: drive, called "www". If you prefer, you might choose to create your sandbox on a USB Jump Drive, perhaps with the drive letter "J:", and the name of your working folder "sandbox" instead of "www". The filenames used in this example are irrelevant; you simply need to use a consistent naming convention on your computer.
The server identification dialog box requires you to enter the name of the subversion server. In the example graphic, I used the IP address of the computer, instead of the name of the computer. (For the EDGE server, you may find it more straightforward to use "edge.rit.edu" instead of the IP address). In this example, I am checking out Project (or Repository) P07200, and creating a new directory called P07200 witin my local sandbox, which I chose to be "C:\www\". You can make your local sandbox on any drive that you select.
Now, use Windows Explorer to look at the contents of the new folder you have just created. You now have a local working copy in your "sandbox" that you can play with. You can make changes to your copies of these files and this will have no impact on the group's files shared in the project repository, until and unless you COMMIT your modifications back to the repository. This is a great safety net -- you can totally goof up someone's else's file and rest assured that you can roll back your design documents to any point in time.