Skip to content

Applying Service Updates

Service Update Apply Process

Prerequisites

IFS Update Analyzer downloaded and installed on the users' workstation. The tool can be downloaded from the IFS Developer Portal

Fetching a Service Update to the build place

Follow the below steps to fetch a service update to Customer Baseline repository.

  • Go to IFS Lifecycle Experience portal and select the buildplace to apply the update.
  • Click on button "Service Update" in the buildplace view.
  • Select the target service update from the drop down.
  • Click on 'Apply'

Once the service update has been applied to the customer baseline repository, a "Pending" status will be displayed for the Customer Baseline Repository. Once the service update is successful, the tag will indicate the new update (eg: "21.1.5" as shown below).

Analyzing the impact of the Service Update

After the Customer Baseline repository has been updated with the service update, the Update Analyzer tool can be used to analyze the impacts of fetching this update to the Customer Solution which contain the customizations. To do this, follow the below steps;

  • Open the Update Analyzer tool and select the Git integration button.

  • Provide below information to Update Analyzer GIT-Info dialog

    • Customer Baseline repository URL
    • Customer Solution repository URL
    • An empty folder to checkout files
      • Note:  Provide a directory with a short path to avoid errors with cloning files having long directory paths. [This error occurs due to the windows limitation on file path length]
    • Path to git.exe file
  • After entering Customer Baseline repository URL, click on button 'Get Tags'

  • Base and Target UPD drop downs will be populated with tag names in Customer Baseline repository

  • Select appropriate base and target tags from the drop downs. Base UPD refers to current update of the customer solution and the Target UPD refers to the update to be moved on to.

  • After entering Customer Solution repository URL, Master and Delivery Branch radio buttons get enabled. To apply a service update proactively select the option 'master', to analyze the impacts for customizations in customer solution repository master branch. To apply a service update as a resolution for a critical issue, select the option 'Delivery Branch' to analyze impacts for customizations in a particular delivery branch. Since these are the steps to apply a service update as a proactive adoption, select the option 'master'.

  • Once all input fields are filled in, click on button 'Checkout Files'

  • Update Analyzer will create three folders inside the location given to checkout files

    • Base folder: Will contain a shallow clone of Base UPD tag
    • Target folder: Will contain a shallow clone of Target UPD tag
    • Cust folder: Will contain a shallow clone of Customer Solution repository master branch
  • Once all three clones have been completed, click on button 'Proceed Analysis'

  • Update Analyzer will then extract the customized files from Cust Folder and move them to a new folder called "ExtractedCust"

  • A list of file names extracted into this folder could be found in file "Customized Files.txt" inside the checkout location

  • Paths to Base folder, Target folder and ExtractedCust folder will be populated into Update Analyzer main window at the end of extract operation.

  • Perform update analysis, a component structure analysis will be performed with the given input fields.

Applying Service Update to Customer Solution repository

  • Clone Customer Solution repository
git clone <customer-solution-repo-url>
  • Change directory to the cloned folder.
cd customer-solution
  • Add an upstream to Customer Solution repository pointing to Customer Baseline repository
git remote add upstream <customer-baseline-repo-url>
  • Create and checkout a topic branch based on master branch by following the two commands mentioned below.
git branch <branch-name>  
git checkout <branch-name>
  • or alternatively use the single command below
git checkout -b <branch-name>
  • Pull from upstream ( i.e. from Customer Baseline repository master branch)
git pull upstream master
  • Fix merge conflicts (if exists)
  • Carry out required changes identified by update analyzer run
  • Git add, commit and push local changes
git add .  
git commit -m "meaningful commit message"  
git push origin <branch-name>
  • Create pull request and merge to Customer Solution repository master branch.
  • Delete remote and local topic branches

Delivering a Service Update in a Corrective Delivery

The following additional steps must be performed if the service update is required to solve a critical issue occurring in the customers' use place.

  • Checkout the master branch of the customer solution repository
git clone <customer-solution-repo-url>
git checkout master
  • Add an upstream to Customer Solution repository pointing to Customer Baseline repository
git remote add upstream <customer-baseline-repo-url>
  • Create a branch from the delivery tag which corresponds to the delivery that is applied in the customers' use place environment, and checkout the branch. The branch name should be similar to the tag name.
git checkout <tag-name> -b <delivery-tag-branch-name>
  • Analyze the impact of the service update on the customer's use place.
  • Provide the information to Update Analyzer GIT-Info dialog as in analyze the impact of a service update section mentioned in this document.

  • In addition to the above information, after entering the Customer Solution Repository URL, click on the radio button 'Delivery Branch'. Delivery Branch dropdown will be populated with delivery branch names in the given Customer Solution Repository.

  • Select the above checkout (delivery-tag-branch-name) Delivery Branch from the dropdown where the critical issue occurred.

    Delivery branches

  • Once all input fields are filled in, click on the button 'Checkout Files'.

  • Update analyzer will create three folders inside the location given to checkout files.

    • Base folder: Will contain a shallow clone of Base UPD tag
    • Target folder: Will contain a shallow clone of Target UPD tag
    • Cust folder: Will contain a shallow clone of the selected Delivery Branch of the Customer Solution Repository
  • Once all three clones have been completed, click on the button 'Proceed Analysis' and perform update analysis.

  • Pull from upstream (i.e. from Customer Baseline repository master branch)

git pull upstream master

Resolving conflicts when merging service update as a Corrective Delivery

If the git pull operation errors out due to conflicts, follow below steps to resolve the conflicts.

  • List down the files with conflicts
git status
  • Open the files with conflicts through an editor, look for the standard "<<<<<<< HEAD" marker and resolve the conflicts.
  • Once done, stage the files
git add
  • Verify the changes
  • Git commit and push local changes
git commit -m "meaningful commit message"  
git push origin refs/heads/<delivery-tag-branch-name>:refs/heads/<delivery-tag-branch-name>
  • Order a delivery from the IFS Lifecycle Experience Portal to create a corrective delivery for the service update.