User Help > Grouping Files Under Version Control > Extending an Extendable Development Path
 
Extending an Extendable Development Path
CLI EQUIVALENT 
si extenddevpath
When an extendable development path is created on a project, the development path is not created on its subprojects. Instead, all subprojects are configured as build subprojects, using the subproject revision in the checkpoint from which the Create Development Path action is initiated. To create an extendable development path from the Integrity Lifecycle Manager client, you select Extendable for the Creation Method option when creating the development path. For more information, see Creating a Development Path.
The ExtendDevpath permission determines whether you can extend the current development path to include the selected build subprojects. When you have this permission, you can extend an extendable development path either non-recursively or recursively. Children of selected subprojects are excluded in a non-recursive extension and included in a recursive extension.
Both actions for extending an extendable development path extend the closest enclosing development path down to the last selected subproject. The closest enclosing development path is the development path of the first ancestor that is not configured to a build. The development path is extended on parents of selected subprojects as well.
The Extend Development Path action extends the development path to include selected build subprojects the first time that you need to make changes to the subproject. This action takes your selection and extends the closest enclosing development path down to the last selected subproject. If it is a normal project, this action reconfigures the selected subprojects from build to how they were configured in the base checkpoint from which the extendable development path was created. If it is a live subproject, then this action follows the On Live Configuration setting to determine the result. Children of selected subprojects are excluded in this non-recursive extension.
The Recursive Extend Development Path action behaves like the Extend Development Path action with the following differences:
The action can run with either a variant project or build project selection.
The action extends the development path to include children of the selected subprojects. The development path is recursively extended to all subprojects under the selected one.
Extending an extendable development path occurs in multiple short transactions. This means that the mainline project and other variant projects are not continually locked. Therefore, users can continue to work on the mainline project and other variant projects while an extendable development path is being extended. When every subproject in the tree is included in the development path, it becomes equivalent to a development path created with the Creation Method option set to Full.
To extend an extendable development path:
1. In the Project or Sandbox view, select the build subprojects that you want to extend to be part of the development path.
2. For a non-recursive extension, which excludes children of the subprojects selected to extend, select Project > Subproject > Extend Development Path. The subprojects down through the last selected subproject are extended to be on the development path. All other subprojects in the extendable development path remain unchanged.
3. For a recursive extension, which includes children of the subprojects selected to extend, select Project > Subproject > Recursive Extend Development Path.
During the extension, the following scenarios are possible:
If the subproject is explicitly configured as build, then it stays a build subproject. If the subproject is explicitly configured as live, then it is the On Live Configuration setting that determines the result.
You are able to create an extendable development path from an extendable development path, which is fully described later in this topic. When extending such development paths on subprojects, the subproject is configured based on the checkpoint from which the first extendable development path was created.
It is the setting for the On Existing Development Path option when the extendable development path was created that determines the outcome when extending the extendable development path. When extending a development path on a subproject, Integrity Lifecycle Manager first checks if the subproject already contains the development path name. If the development path name does not exist, the development path is created on the subproject at the current subproject build revision. If the development path name does exist and was created from the current subproject revision, the name is reused if Share Development Path was specified when creating the extendable development path. If the name does exist and was created from a different subproject revision, the development path is not extended and the subproject remains as build. This means that you are unable to modify the subproject’s content.
* 
Creating an extendable development path configures all subprojects as build and marks them as extendable. If the On Live Configuration option was set to Retain the existing live configuration of the subproject when the development path was created, then creating an extendable development path automatically extends to those live subprojects.
For most cases in the GUI, you must manually extend a development path to a build subproject before making changes to it. However, when you move working file changes to a change package in the Working File Changes view, the development path is automatically extended to any build subprojects and their parents that are affected by change packages. For more information, see Working File Changes View.
If a change package is discarded, Integrity Lifecycle Manager does not roll back the extension of the extendable development path to the affected build subprojects.
You can propagate changes to and from an extendable development path, just like any other propagation. The target development path is automatically extended during the process as needed when using the Apply CP and Resync CP commands. Using the Resync CP command without propagation also automatically extends development paths to build subprojects as needed. For more information, see:
Creating Extendable Development Paths from Other Extendable Development Paths
After software is released, bugs that must be fixed in this release can be found. To facilitate the release of bug fixes, you can create an extendable development path from the last checkpoint on this release, which can also be an extendable development path. When an extendable development path is created from an existing extendable development path, the following scenarios exist on the new extendable development path:
When extending an extendable development path to a subproject that was marked as extendable by the creation of the previous extendable development path, the subproject is configured to the new development path.
When extending an extendable development path to a subproject that a user explicitly configured as build in the previous extendable development path checkpoint, the subproject is marked as non-extendable.
You are able to extend subprojects on full development paths created from extendable development paths.
Example 1: Extending path1 to sss1
Example 2: Extending path3 to s1 in sandbox context
Example 3: Extending path5 to multiple subprojects (s1 and s2) that have the same parent