A feature is a large piece of work which can be broken down into smaller pieces of work (tasks). As a rule of thumb we recommend a feature is created for any piece of work which takes longer than half a day.
When a developer submits changes to the feature, the changes are not submitted to the version immediately. This allows the developer(s) to submit changes in isolation without effecting the other developers. When the feature is complete the owner of the feature then merges all the changes back into the version as described in the section called “Merging from Features to Versions”.
Creating a Feature
To create a feature right-click the version and select 'New Feature'. This will launch the New Feature dialog where you can specify a name and description.
After the feature is created it will appear in the tree under the version.
Viewing the Feature Files
You can view the latest files for the feature by right-clicking the feature and selecting 'Show Files'. This will show the stream files as described in the section called “Viewing the Stream Files”. You can also show the history of a file in this view.
Showing the Submitted Changesets
You can view all the changes which have been submitted to the feature stream by right-clicking the feature and selecting 'Show Submitted Changesets'. This will show the history of the stream as described in the section called “Viewing the Stream History”.
The 'Show Submitted Tasks and Releases' menu on a feature is similar to 'Show Submitted Changesets' but will show the tasks rather than the changesets. This is only available if tasks are enabled as explained in Chapter 3, Tasks.
Moving a Feature
The 'Move' menu allows you to move the feature to another version or project folder. Alternatively, you can drag and drop the feature onto its new parent.
This can become complicated if you have already submitted changesets to the feature. PureCM will create a new feature from the new version and will try and automatically merge the submits into this feature. If the same files have been changed in the new version then a conflict will appear on the 'My Tasks' view for the owner of the new version. This can be resolved with the Resolve Tool the same as any other conflict.
Other Feature Operations
The 'Merge' menu on a feature allows you to merge the feature changes back into the version. This is described in the section called “Merging from Features to Versions”.
You can create a workspace to make changes on this feature by right-clicking the feature and selecting 'Select Workspace'. This will allow you to create a new workspace or switch an existing workspace to the feature stream. Typically you would create workspaces within the Workspaces view as described in the User Guide.
You can assign a feature to a user or group with the 'Assign' menu. The owner of a feature is important because they are responsible for making sure all the version changes are merged into the feature. This is explained in the section called “Merging from Versions to Features”.
The 'Set Priority' menu allows you to set the priorty for the feature. The priority is used to determine where the feature appears in the tree/list.
You can deactivate a feature with the 'Administration | Deactivate' menu. This will hide the feature so it is not visible in the tree. If a feature is inactive then developers will not be able to submit changes to the feature. You can view inactive features by right-clicking Projects in the tree and selecting 'Show Inactive Items'.
The 'Show Differences' menu compares the feature files with the version files (i.e. all the feature changes). The 'Administration | Compare With' menu compares the feature files with any other version, feature or release. This will launch the Stream Comparer dialog showing which files have been added, deleted and changed. This is described in the section called “Comparing Streams”.
If the stream for the feature has not yet been created then the feature will appear with the clock icon.
The stream for a feature will be created when the first workspace for the feature is created. This is good because it means you can plan your feature with tasks without creating the stream (and therefore need to merge all changes from the version). You can force the stream to be created by right-clicking the feature and selecting 'Create Stream Now'.
If the feature has update conflicts then the feature will appear with a red cross.
You can merge the pending changes by right-clicking the feature and selecting 'Show Pending Changes'. This is described in the section called “Merging from Versions to Features”.