We have a code Branch on which development for a particular release is happening.
As a weekly process we apply label(say "LABEL_REL1
") to the latest Branch code and deploy the code to SIT and UAT environments.
Testing is done on SIT and UAT. If any issue is found in SIT, that issue is fixed and code for that issue is again relabeled and deployed to SIT and UAT.
Then on the labeled code of "LABEL_REL1
", we apply another label "PROD_LABEL_REL1
", which is deployed in Production.
Issue is the code in Production may also contain code which was not tested in UAT as Not all the defects could be tested in UAT prior to Production deployment.
What we need is how to deploy only the code which is passed in UAT. There may be lot of defects which Pass UAT testing and some which fail UAT testing.
We can manually label the code which passed UAT testing as "PROD_LABEL_REL1
", but tracking the source code will be difficult as there may be lot many files for each defect.
What process is being followed by others to move the code to Production from SIT and UAT?
The usual technique to keep track of version done in a specific environment is to use attributes (defined with
cleartool mktrtype
)You can see in technote "Listing out element versions with a specific attribute applied" how you can find or select only the versions with the right attribute, which would in turn help you initiate a merge for those specific version.
The
cleartool findmerge
command can actually use a version selector usingattype
(to select version with a specific attribute)