Cross Project Merge doesn’t work
search cancel

Cross Project Merge doesn’t work

book

Article ID: 231555

calendar_today

Updated On:

Products

CA Harvest Software Change Manager

Issue/Introduction

We have been having an issue with a package. After performing Cross Project Merge from the branch to trunk project, none of the elements appears in the package in the trunk project.

Environment

Release : 14.0

Component : CA HARVEST SCM CORE FUNCTIONALITY/PROCESS AUTOMATION

Cause

They have sibling projects, two are branch projects and the other the trunk project.  They work on fixes and enhancements in the branch projects and then merge those back to the trunk project using Cross Project Merge.  This has worked fine until today, when the Cross Project Merge did not work, and left the package in the trunk project empty.

By clicking on the folder having the problem in the trunk project and looking at the Properties view in Workbench, we were able to see its item objid number = 6034281.  We then went to the RM7543 branch project, found the same folder name, clicked on that and in the Properties view, the item objid number = 6057113.  For Harvest to know that the two folders were actually the same folder, the item objid number would need to be the same in both cases.  

Linkage was lost for this folder, as well as other files and folders in the RM7543 branch project, because they were also checked in as a new item to another branch project, RM3465.  This other branch project package had been merged back to the trunk project, but had not yet reached the production state of the Trunk project before creating the RM7543 branch project.

Harvest works to keep things isolated in one environment until the developer is ready to "share" the information with the next environment.  This is true from state to state within one project, and it is also true across sibling projects.  So:

  1. When you check in a file or folder as a new item in one project, the other sibling projects do not know of the existence of the file or folder until a "cross project merge" process happens to share the information.
  2. When you cross project merge from one branch project (RM3465) to the trunk project, now the trunk project is aware of the files and folders that were merged, but any other active branch projects (RM7543) still do not know about it.
  3. When you then check in the same files and folders "as new" to the second branch project (RM7543) they get new item objids, and are not connected to the same items in the other branch project (RM3465) or in the trunk project.  The linkage is lost.
  4. Finally, when you try to cross project merge from the second branch project (RM7543) to the trunk the problem happens.

We found that when they create a new branch project it is done by a script that will 

  • take a new snapshot of the production state in the trunk
  • create a new branch project
  • add the new snapshot from the trunk as the baseline for the new branch project.

 

The missed step that would have prevented this problem was to complete work on the package from branch RM3465 and promote it to production in the trunk project before creating branch RM7543.

Resolution

To resolve the problem we abandoned the RM7543 branch project, ensured all previous work had been promoted to production in the trunk project, and created a new branch project.  We compared folder structures in the trunk project and the new branch project to ensure the file structures were the same so that the new branch starts with all the latest updates.  From here, the developer will check in his changes again to the new branch project and merge it back to the trunk project.