- Table of contents
- Subversion and Repositories
Subversion and Repositories¶
All projects use the Subversion tool for version control of key project files. These are stored in a 'repository' on the same server as the Electronic Design Notebook system. All project work for a given semester is to be done in the 'working' folder (see below). At the end of the semester, each team is to create a project archive or 'tag' (see below). This tag is a snapshot of the semester's work and allows future teams to see the exact project status at the end of each previous semester.
Basic How To Guides¶
- Getting Started with Subversion-For Windows Users (includes installation):
- For Mac Users: we do NOT have a separate video at this time. Please watch the one for Windows. You will use svn-x as the client. If you are comfortable with terminal and the UNIX command line, you may use the svn command line client. Please visit the Subversion Clients page for instructions.
- For Linux Users: we do NOT have a separate video at this time. Please watch the one for Windows. On Ubuntu, you may use RabbitVCS as the client. If you are comfortable with the command line, you may use the svn command line client. Please visit the Subversion Clients page for instructions.
- Ian Keyworth, one of our students, took the available materials and generated a short quick start guide. Subversion_Quick_Start_Guide_for_Dummies.docx Note that the guide covers
- checking out things from Subversion
- initially creating a repository / repository structure.
- For guidance on what goes where in the repository, see the sections below OR watch this video (5 min): capstone-support-dev:export:training\Using the Repository - What Goes Where and When.mp4
- Much more documentation is available on the Subversion website: https://tortoisesvn.net
- Junichi Kanai put together this short instruction on using Tortoise to obtain usage statistics on Subversion to help monitor team progress and activity - Using_TortiseSVN_for_Evaluation.pptx
- End of semester Archiving (also called tagging)
Common problems students encounter, and how to solve them:¶
How should I interact with files in SVN? - Install a Subversion Client
I can't commit a file
There is a conflict
How to run Cleanup?
Our team wants to use Git instead of SVN
How to EASILY access newest version of Capstone Playbook
Subversion / Tortoise / SvnX complains about a security certificate¶
If your subversion client complains about a security issue, you will have to first install the subversion client (see Install a Subversion Client) then run the following command in the terminal window using YOUR project's project-identifier. Note that "svn" is the command line command for running Subversion.- svn info https://designlab.eng.rpi.edu/svn2/project-identifier
- when prompted, accept the security certificate "p" for permanently.
- Then svnX should be able to access your repository.
Subversion Clients¶
Interacting with your project's Repository through a browser is possible, but cumbersome. We strongly recommend installing a Subversion Client to allow smoother file use.
Repositories / Repository¶
Repository Contents¶
Examples of information that should be in the project's working folder on the repository are:- Design Documents – CAD database and drawings, circuit diagrams, system block diagrams and engineering specifications
- System Evaluation – Test procedures, test results including raw data, and software used to analyze the results
- Reports, and presentations in addition to the final output – Each phase of the Design Report (SoW, PDD, Final), preliminary and final presentation, preliminary and final poster
- Needs & Requirements workbook – A list of needs, customer requirements, and related material, such as use cases.
- Design Analysis – Simulation software and results
- Prototype System (Components) - Software (source code) and a user manual
It is CRITICAL to remember that there should also be threads created in the Forum to document the reasoning and discussion about files in the Repository. This will help explain to teammates, clients, and instructors WHY a CAD model looks like it does, or WHAT additional work is needed on a spreadsheet calculation.
Naming / Location¶
All our repositories are managed by EDN and can be found at: https://designlab.eng.rpi.edu/svn2/repo-name/working
where repo-name is the name of your repository.
With EDN, repositories are automatically created when new projects are defined. The name of your repository is the same as the project's identifier. To determine the project identifier, simply look at the URL for your project. For THIS project, the URL is: https://designlab.eng.rpi.edu/edn/projects/capstone-support-dev/working and "capstone-support-dev" is the identifier. If it had one, this project's working repository would be found at: https://designlab.eng.rpi.edu/svn2/capstone-support-dev/working
For security control, your EDN username and password are used to access the repository for your project.
Repository Folder Structure¶
There is a generally accepted convention for the folder structure. For the Design Lab, repositories will have two top level folders (note that these are all lower case):- tags - where archives are created ONLY by the Project Engineer after the end of each semester
- working - where the current semester's work takes place
This initial folder structure is created by your Project Engineer at the start of a project. Future teams will then use that existing folder structure.
The working Folder¶
The concept of a "working" folder is that it is there for the entire life of a project. Whether the current team happens to need every file or not. It does NOT represent the currently semester's "working" folder. Some things that are clearly historical only, like background memos can be deleted after they are 'tagged'. Other things like the posters and reports are simply overwritten each semester with the latest and greatest since they too have already been tagged.
Working Folder Structure
Many of our projects run across multiple semesters with each new team broadly continuing the work of the previous team. Our projects in EDN are thus set up to support this. They are NOT set up on a semester by semester basis. The working folder will be where all of the project's (from all the semesters) active work will be saved. Your working folder is part of the technology transfer for your project.
PLEASE DO NOT CHANGE THE FOLDER STRUCTURE!
Within the working folder we use a "functionally" oriented folder structure:
tags working ├ Background Information ├ CAD (mechanical & electrical) ├ Data ├ Engineering Analysis ├ Purchasing ├ Reports │ ├ Design Report + Poster │ └ Client Meetings ├ Software
The tags Folder¶
The tags folder is used to create "snapshots" of a project. Projects are tagged by the Project Engineer ONLY at the end of each semester after a thorough review. Students should NOT do the tagging.
Repository Usage Guidelines¶
- All mechanical CAD models and drawings AND all electrical CAD (i.e. schematics) go to the CAD folder.
- Purchasing folder
- purchasing forms - scans or electronic version
- Bill of Materials
- Video Files
- Please check with your PE BEFORE you place large video files on the repo.
- Software folders
- include all source code and “make” files or instructions on how to rebuild the program
- For micro-controller types of programming be sure to include full instructions on how to obtain / load their development environment.
- Do NOT commit virtual machine (VM) images! They are huge! Instead, fully describe how you built it in your project's wiki. Then future teams can rebuild it as needed. All of the key content (source code, data, etc.) on that VM should be coming from your repository.
- DO include all documents in their “source” format not just a PDF of the output, ex: Solidworks / NX CAD models, Photoshop PSD files, etc. Future team(s) may want to reuse your information and/or edit it.
- Do NOT zip/tar/7z/compress folders into the repository! It should reflect what you are actually working with (you're probably NOT working with zip files) and you do NOT really need to save space in the repository. By avoiding compressed files, others can simply checkout the desired folders and begin working on their contents.
- For each directory, you should prepare a README file and include information to help future users utilize the stored files. See below.
- Do NOT embed version information into folder or file names. For example have a folder called "Final". Do NOT have a folder called "Final - Spring 2011".
- For teams that are using an existing Repository (from a previous semester's team(s) - review the current contents! They are there as your starting point.
- Do not rename their folders or files with a semester name (see above!). Instead, use the existing folders.
- DO NOT just delete things! Talk to your PE!
- The Project Statement & Final Report/Poster will be called the same as what the previous team called it. Yours will then simply replace theirs. Please do not use a different name.
- DO NOT name folders after the names of your team mates! Instead, be sure to use functional names. For example rather than calling a folder "Fred" because he happened to work on the CAD for a robot arm, call the folder "Robot Arm". Team members may work on more than one functional area - so naming the folders by person does not make any sense.
- At the end of the semester, be sure to 'clean up' your Reports folder so that only your final version of the Statement of Work, Poster, and Design Report are there. Remove any drafts, temporary files, individual sections, commented copies, etc.
If in doubt, please ask your Project Engineer BEFORE you make organizational changes to an existing repo.
If you are not absolutely sure about how to proceed, ASK your Project Engineer before you make any changes!
Consult your faculty advisors on archiving any proprietary information obtained from the project Client.
README Files¶
Every folder should include a README file to help explain to the contents.
Subversion and Visual Studio Code
---¶
Attachments Below