Conary:Promote
From rPath Wiki
A Conary promote clones, or copies, packages and groups from one set of labels to another. Like with cvc clone, the cvc promote command tells Conary to make copies of the troves from one branch to another in the same or different Conary repositories, and merging is not available. Sources are always cloned along with binaries, eliminating the need to specify :source components.
| rPath recommends using cvc promote in place of cvc clone to step through a release management process. |
The fromLocation and toLocation values used in the command can be full branches, labels, or a part of the labels such as the branch name with its namespace:tag syntax. Some variations on the example at the top of the page are:
$> cvc promote group-example example.rpath.org@corp:1-test--example.rpath.org@corp:1 $> cvc promote group-example @corp:1-test--@corp:1 $> cvc promote group-example :1-test--:1
Conary completes the missing parts of a label using the buildLabel value in the current Conary context for the fromLocation, and using the fromLocation value for the toLocation. Use conary config | grep buildLabel to show the buildLabel entry that currently applies at any point.
When a group is specified, Conary searches the group for packages that start on fromLocation, and all such packages are cloned to toLocation. When a package is specified, Conary determines if the package exists at fromLocation and, if it does, clones it to toLocation.
Limitations for promote include the following:
- When the labels used in the command are abbreviated, the installLabelPath configured for the current Conary context is used to complete the labels. If the package or group being promoted is not on any of the labels in the installLabelPath when this auto-completion is performed, Conary will return an error. In such cases, use the complete label intended to override the installLabelPath values.
- Promote has similar limitations to that of cloning with respect to the parent-child and sibling relationships revealed in a trove's full version string. Developers can clone between siblings (/A to /Z, or /A//B to /A//C) or upstream to parents (/A//B to /A) or to siblings of parents (/A//B/C to /A//D, or /A//B//C to /D). However, developers cannot clone between shadow branches that do not share a parent (/A//B to /C//D).
