Solved

Source does not have an up-to-date program object archive after making branch


Userlevel 4
Badge +13

Recently I started to look into branches but I’m experiencing some strange behavior. After creating a branch of the latest version of our end product I immediately switch to it in the SF. Without making any changes I immediately do a “generate definition” followed by a “generate source code” using the smart method. But as soon as I select “smart” in the drop-down list I get the error message that the previous version “does not have an up-to-date program object archive”. This usually happens when that previous version needs to have its definition regenerated but that’s already the case.

To rule out some weird cross project issue (the previous version is of course in the trunk project) I then copied the first version in the branch to a new version and tried to do a smart code generation there. However I got the same error message again stating that the previous version (this time within the same branch project) “does not have an up-to-date program object archive”.

We’re on the very latest Thinkwise suite version 2021.2 containing all current hot fixes. What might prevent a branch from getting the changes from its source project version?

icon

Best answer by Mark Jongeling 5 June 2021, 21:48

View original

5 replies

Userlevel 7
Badge +23

Hi Roland,

I can confirm this does occur when creating a branch from a trunk/and directly Generate definition and Generate Smart source code. It looks like upon creating a branch, the branch will be looking at a snapshot of the trunk:

Snapshot of branch is previous version

This snapshot most likely doesn't use/copy the program object archive of the trunk, and simply doesn't have an archive. I'm not sure if this is intended, and I'll confirm this with my colleagues.

When you change the Previous project version to the non-snapshot version, the Smart Generate source code will succeed.

Non-snapshot version

Hope this helps!

Userlevel 4
Badge +13

Hi Mark,

Great suggestion and I can confirm it works now.

Actually there was another reason to post this issue but I left it out until now because I assumed the underlying cause was the same. In a branch that was created in a previous version of the suite we see other weird behavior when doing a smart generate. SF decides that certain tables, views or procedures that are completely untouched and have been in many versions either need to be recreated or even removed from the database. I’m going to recreate this branch from scratch and see if the issue persists. Applying your suggestion unfortunately doesn’t solve it. I will post my findings here.

Userlevel 7
Badge +23

The recreation can also take place if used domains or dependencies are altered/created. But I'm interested in hearing the results :wink:

Userlevel 4
Badge +13

Luckily the new branch with the same new tables now upgrades the database just fine. No more untouched items are being removed or recreated. I upgraded the suite from 2020.1 to 2021.1 and 2021.2 within a relative short period. Perhaps that caused the branch to behave erratically somehow but that’s just speculation. It works as expected now.

Userlevel 7
Badge +23

Glad it work like you expected :smile:

I recommend fully generating definition and source code for the 1.00 version of the branch and then copying to a new version (1.01) and continuing development in that version. That way version 1.00 is a copy of the trunk version with the program object archive and in version 1.01 you'll be able to use the Smart upgrade option.

Reply