After performing Cross Project Merge from the branch to trunk project, none of the elements appears in the package in the trunk project.
Harvest Software Change Manager all versions
With Harvest, it is possible for 2 or more projects to share the same repository in their baseline. These are called "sibling" projects. While Harvest still maintains a separation between sibling projects (what happens in one sibling doesn't affect the others), a special process called "Cross Project Merge" allows the user to send a copy of a version of a file or folder from one sibling to another. When cross project merging a file or folder, Harvest is able to identify if the object being copied already exists in the sibling project by comparing the file's "item object id". For files or folders that do already exist, the version number of the copied object will be the version in the target project "+1". For files or folders that do not yet exist in the target project, Harvest treats those as a new object and the version in the new project is 0. You can see the item's object id by looking at the "Properties" panel in Workbench:
Witht the problem described above, they have three 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. The problem happened 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 branch project, located 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 branch project, because they had been checked into the trunk project and the branch project as new items.
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:
We found that when they create a new branch project it is done by a script that will
The missed step that would have prevented this problem was to complete work on the package from branch and promote it to production in the trunk project before creating the branch project.
To resolve the problem in the above-reported case, they abandoned the branch project, ensured all previous work had been promoted to the Production state 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.