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 files for the feature by selecting 'Files' in the tree or right-clicking the feature and selecting 'Administration | 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 Feature History
You can view all the changes which have been submitted to the feature by selecting 'History' in the tree or right-clicking the feature and selecting 'Show History'. If a changeset has an associated task or feature then this will be displayed.
The 'Administration | Show Submitted Changesets' menu on a feature is similar to 'Show History' but will only show the changesets (not the associated task or feature).
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.
Show Releases for Completed Feature
For a completed feature you can right-click and select 'Show Releases'. This will give you a list of all the releases in which this feature has been submitted or merged into. This is useful if you want to know whether the feature was applied to a specific release.
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 reject a feature with the 'Administration | Reject' menu. This will hide the feature so it is not visible in the tree. If a feature is rejected then developers will not be able to submit changes to the feature. You can view rejected features by right-clicking Projects in the tree and unchecking 'Show Only Open 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.
'Unmerged Changes' will appear in the tree under the feature with a list of the changesets that have been submitted to the version but not merged into the feature. If the changeset ha an associated task or feature then that will be displayed. Merging these changes into the feature is described in the section called “Merging from Versions to Features”.