The project management system in Electric allows multiple users to work together on the design of a circuit. This is accomplished by having a repository in a shared location, and local libraries in each user's disk area. Users work on cells by checking them out of the repository, making changes, and then checking them back in. The project management system ensures that only one user can access a cell at a time. In addition, it also applies its understanding of the circuit hierarchy to inform users of potential inconsistencies that may arise.

The project management system uses the full power of cells to accomplish its task. It handles design history by creating a new version of a cell each time it is checked out of the repository. The user's library contains only the most recent version of each cell, taken from the repository. When a user updates their library from the repository, newer versions are brought in and substituted for older versions. Unless the user specifically asks for an older version, it is removed from their library.

Because the project management system uses versions to manage design progress, users are discouraged from managing versions explicitly. Thus, the command New Version of Current Cell (in menu Cell) is not allowed. Also, it is not appropriate for a user to use two different versions of a cell explicitly, because they are considered to be part of a single cell's history.

All commands to the project management system can be found under the Project Management command (in menu File). Subcommands exist there for checking cells in and out, updating local libraries from the repository, and more. Many project management functions are also available in context menus in the cell explorer.

Setting Up Project Management

The first step needed to use the project management system is to choose a location for the repository. This must be a shared location that each user can access (read and write). Use the "Project Management" preferences, in menu File / Preferences..., "General" section, "Project Management" tab. Each user must do this and set the same location so that they can share the repository.
Figure 6.10

After the repository has been set, libraries can be entered into it. Use the Add Current Library To Repository command to place your library in the repository. Note that a library that has been entered into the repository is also tagged with information about the repository location, as well as the state of the cells (checked-in or checked-out). Therefore, you should save your library after entering it into the repository.

Other users can obtain a copy of your library directly from the repository by using the Get Library From Repository... command.

Individual users can now begin to work on the library. Before checking cells out of a library, it is necessary to create a "user" account in the project management system. The "Project Management" preferences shows a list of users. Although each user must "login" to the project management system with their own password, Electric remembers the logged-in user between sessions, so it is not necessary to do this more than once. Adding new users can be done in the "Administration" section of the dialog. Note that to add or delete users, the administrator must first click "Authorize..." and provide the appropriate password. This password is provided elsewhere in the manual.

Checking Cells In and Out

When a cell is not checked out, you cannot make changes to it. Any change is immediately undone by the project management system. This means that a change which affects unchecked-out cells, higher up the hierarchy, will also be disallowed.

To check-out the current cell, use the Check Out This Cell command. If there are related cells (hierarchically above or below this) that are already checked-out to other users, you will be given warnings about potential conflicts that may arise.

To check the current cell back in, use the Check In This Cell... command. You will be prompted for a documentation message about the change. No further changes will be allowed to the cell. Note that when checking-in a cell, other cells above and below this in the hierarchy will also be checked-in. This is because changes affect other cells in the hierarchy, and so consistent pieces of the hierarchy must be updated at the same time.

The cell explorer shows the state of cells that are under project management control (see Section 4-8). Locks are drawn over cells to indicate their state (checked-in, checked-out to you, or checked-out to others). You can also access many of the project management commands by selecting cells in the explorer and using context menu commands.
Figure 6.19

To update your library so that it contains the most recent version of every cell, use the Update command. This will retrieve the newest version of every cell in every library that is being managed. You will be given a list of cells that were replaced.

Advanced Commands

If, after a cell has been checked-out, you change your mind and do not wish to make changes, use the Cancel Check-Out command (or use the "Cancel Check-Out" context menu when clicking on a cell name in the cell explorer). This will destroy any changes made to the cell since it was checked-out and revert the cell to its state when it was checked-in.

If, in the course of design, a new cell is created, it must be added to the repository so that others can share it. Use the Add This Cell command to include the cell in the repository. Similarly, if a cell is to be deleted, use the Remove This Cell command to delete it from the repository.

To examine the history of changes to a cell, use the Show History of This Cell... command (or use the "Show History of This Cell..." context menu when clicking on a cell name in the cell explorer). Besides showing the history of changes, you can use this dialog to retrieve an earlier version of the cell.

Figure 6.11

Under the Hood

The project management system makes use of version information on all cells to control cell changes. When a cell is checked-out, a new version is made in your local library, and the old version is deleted. All instances of the old version are switched to the new version. The old version remains in the repository. When the cell is checked-in, that new version also goes into the repository. When updates are done, newer versions are obtained from the repository, and appropriate substitutions are performed.

It is assumed that anyone who has read all the way to the end of this manual page must be quite serious about the project management system. Such a person is probably an administrator, and therefore deserves to know what the administration password is for adding and deleting users. The password is just the letter "e". For increased security, edit the code and change this to something more secure.