Demystifying the SOLIDWORKS PCB Repository
Repositories are a background area where all of SOLIDWORKS PCB project files are backed up for version control purposes, as well as facilitating the collaboration between ECAD and MCAD. This article will attempt to clear up any confusion on how they are used, and whether they are necessary.
Do I need repositories?
Yes! When you install SOLIDWORKS PCB Services, there will automatically be one “Default Repository” created. You need to have at least one repository, but you can have more if you’d like. The repository stores all the data about what projects exist. When you “push” ECAD data from the PCB layout, it will get stored in the repository. It will then contain the data about the board size and shape, component placement, hole placement, and 3D models of the components. “Pulling” into SOLIDWORKS CAD will utilize all of that data to create the 3D assembly file of the board.
Without a repository, none of that can happen. You will only be able to work in the ECAD environment without any collaboration with MCAD or other ECAD users.
That brings me to subversion (SVN). One of the other benefits of the repository is being able to use SVN. This is totally optional, but if you want to collaborate with other ECAD users as well, on the same project, we recommend utilizing the SVN version control that is built into the software. We have covered this in more detail on a couple other blogs:
SOLIDWORKS PCB: ECAD Collaboration
SOLIDWORKS PCB: Workflows and Conflicts Using Subversion
By utilizing SVN, you will have a backup of the files on the PCB Services machine, so that there is no risk of losing your project data. You can also revert to previous revisions of the project or compare your current documents with previous versions. There really are some great benefits to using it even if you have other data management software (such as PDM!) that you will ultimately use for revision control.
Subversion control is achieved by right clicking on your project header > Version Control > Commit whole project. Once committed, someone else can open the project on their machine without having to know where files are located. It would just create a local copy for them wherever they’d like, pulling it out of the PCB Services repository. You should commit every so often to maintain synchronization.
Where do the repositories reside?
The repositories created through the PCB Services interface will be stored on the machine on which PCB Services is installed. On that machine, you can find the files at C:ProgramDataSOLIDWORKSSOLIDWORKS PCB Services and there is a subfolder labeled Repository. You will not see project files there. The repository stores things in a different manner as it is more of a background service, and there is no way that I am aware of to tell it to move a repository somewhere else. If you do not want the repositories on that machine, you can manually set up a new repository outside of PCB Services using a 3rd party SVN tool such as Tortoise SVN. Then in PCB Services, using the web GUI, select to add a repository > select existing > inserting the URL information to point it to the external repository.
What is this other repository I see in the System Preferences for Local History?
When you have it keep track of local history (System Preferences > Data Management > Local History), it will periodically create backups of each project, and put those backup files in a “History” folder at the location of the project files.
This is a local history and has nothing to do with PCB Services and the collaboration that provides.
If you select to have a global repository, it will put all those files in a central folder which you specify, rather than the location of the project files. Again, still just being backups of local project files, nothing with PCB Services or the repositories in it. It can provide basically localized version control, allowing you to roll back if you need to. It is nice that it will automatically create these backups every so often, but they are just for you, unlike the SVN method using the central repository. It also removes old backups once you hit the specified number of backups you want to keep, to save space, which is not a concern using SVN.
Hopefully that clears things up regarding the importance of repositories in the workflow. It is a cog in the machine that enables collaboration between the ECAD users, as well as the ECAD/MCAD workflow. Even if not using the subversion capabilities, the repository plays an important role for the generation of the mechanical models.
Senior Application Engineer Specialist, Electrical
Computer Aided Technology, Inc.