About projects

A project is a dynamic collection of items related to a particular development activity. This topic describes projects and how to work with them.

Projects overview

Projects provide a way to organize items and control access to them. All item operations are performed within the context of a project.

Use projects if your team plans to:

  • Manage primarily non-software assets such as documentation and hardware assets.

  • Work in a regulated environment where it is necessary to pre-authorize each change before it is made.

  • Follow a traditional waterfall development methodology.

  • Use an SCC-based IDE for your development.

  • Use remote replication.

In a project, you can define the following:

A view for users Projects are dynamic views of items needed to fulfill a certain purpose—for example, building a new enhancement into the current release or fixing a bug in an existing release.
Folder structure Within a project items are organized in a folder structure. When items are checked out of a project, corresponding physical folders are created on the hard drive relative to the root folder.
Work area

Each user has a default work area for the project in which they are working.

A work area identifies a location outside the repository that you use to copy files from/to the repository by running the deliver, update, check out, or check in operations. It can be a Dimensions CM-managed work area or a folder on your machine or a remote node.

Items are placed in the work area relative to their path in the project.

For details, see Define work areas.

Deployment areas

Areas can be associated with a project so that item files are copied to or from those areas when item revisions are deployed to a new stage in the development lifecycle.

For details, see Define deployment areas.

Library cache areas Areas can be associated with a project so that the item files are automatically copied to those areas during certain item operations to improve efficiency when a number of users are accessing items on a remote server.
Project filenames Project file names represent an item's location in the user's physical directory and may be different from the item ID.

A project is a conceptual collection of items. At the physical level, item files are stored in item libraries. They are referenced and arranged within projects into whatever organization suits the project.

The global project contains all the projects/streams and items for the product. Item operations that are reflected in the global project include create, update, edit, check in, and delete.

Note: You can configure your database to use only streams, only projects, or both streams and projects. For details about miscellaneous database options in the Administration Console, see Set up the process model.

Back to top

Work with projects

In Dimensions CM, you can perform the following project operations.

Operation Description
Create projects

Create a project in the following ways:

  • From an existing project or baseline.

  • By creating an empty project and adding items later.

  • By merging existing projects.

If you create a project from an existing project or baseline, the new project contains all the item revisions included in the original project or baseline.

Rename or delete projects Rename projects or delete them, for example, when development work is finished.
Edit properties and options Change a project's default settings.
Set your current project Set a project as your current project.
Assign project defaults Set a default branch, request, and work area for your current project.
Relate a project Relate a project to other projects or baselines.
Manage project folders

A project folder is a folder in the project structure that contains items. You can do the following with project folders:

  • Add a new project folder to the project structure and add items to that new folder.

  • Change the location of a project folder.

  • Rename a project folder.

  • Delete an item from the project, provided that the item does not belong to a baseline or release.

Except renaming a folder, these operations cannot be performed with streams, as refactoring changes are made in a work area and not directly to a stream in a repository.

Action projects Move projects from one state in the lifecycle to the next state.
Create and modify work areas Create and modify controlled work areas, and assign them to projects.
Remove and add item revisions Remove item revisions from, and export them to, a project.
View users, roles, and privileges View the role assignments and privileges for a project, and the users who have the project in their inboxes.
View project history View the update history of a project.

For details on how to perform these operations, see the following sections:

Web client: Work with projects
Desktop client: Work with projects

Back to top

Project relationships

Projects and streams have relationships with the following Dimensions CM objects.

Object Relationship description
Items The project/stream contains a list of item revisions that are Owned by it.
Requests

The project/stream can have requests related.

When you create a request, by default it is related to your current project or stream, but you can change the project or choose not to relate the request to a project.

When you select requests in the My Current Project/Stream view, the requests in your inbox and the Catalog node include only those related to your current project. To view all requests, select the User Inbox or Product Catalog. For details, see Select requests.

Other Projects/streams A project/stream can have a Based on relationship to one or more projects/streams. It can be Parent or Child in relation to other projects/streams.
Baselines A project/stream created from a baseline has a Based on relationship to it. A baseline created from a project/stream has a Based on relationship to it. A baseline can be attached as a child in a usage relation to a project (but not a stream).

Subprojects and baselines

Projects can contain other projects in a hierarchical relationship.

In the My Current Project view, you can view the subprojects related to your current project, and you can access the items within them. A subproject has a relative path, or folder offset, defined in conjunction with its relationship to the parent. This is used to determine the item files location that is used in item operations such as get, check out, or check in.

Note: This feature may not have been enabled in your UI profile.

Example: A project called MainProject has a project called Package1 related to it as a subproject, with an offset path of shared/package1.

If MainProject is set as your current project and has a root folder set to C:\Development\MainProject, then the items in the top-level folder of Package1 have their files checked out by default to C:\Development\MainProject\shared\package1. An item in Package1 with a project path of include\header.h is checked out to C:\Development\MainProject\shared\package1\include\header.h.

If you set your current project to Package1, and its root folder to C:\Development\Child1, the item with a project path of include\header.h is checked out to C:\Development\Child1\include\header.h.

You can also use a baseline as a subcollection of items within a project. In this case, when you get baseline items to your work area, by default they are copied to a path relative to the root folder specified by the folder offset defined in its relationship to the parent project in the same way as for a subproject.

Back to top

See also: