Features

Features

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.

Figure 2.12. New Feature

New Feature

After the feature is created it will appear in the tree under the version.

Note

After creating a feature the stream will not be created immediately. The stream will be created when you start woking on the feature (create the first workspace). If you want to create the stream before you can right-click the feature and select 'Create Stream Now'.

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.

Figure 2.13. Feature History

Feature History

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.

Note

Moving features is one of the big advantages with using features. You can create a feature in Version 1 and a developer can start submitting changes for this feature. If you realize that the work will take longer than you had planned then you can move the feature to Version 2. Version 1 was never changed for this feature.

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.

Note

To view the completed features you need to select the 'Completed Tasks and Features' option from the 'Now Showing' drop down.

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”.

Feature Icons

If the stream for the feature has not yet been created then the feature will appear with the clock icon.

Figure 2.14. Feature Without Stream

Feature Without Stream

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.

Figure 2.15. Feature With Update Conflicts

Feature With Update Conflicts

'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”.