Assigning $ident to items pulled from VCS
The VCS unfortunately does no such thing unfortunately.
There is a little bit of magic going on where the $classdata does
contain a little more info then just the ident of other classes allowing
it to re-tokanize things like file classes and such.
But oh so often I’ve had in the past that things got completely confused
when multiple people in our team each created a file class, which each
got the same ident, which then was checked into the VCS and things
really started to get messed up after that.
Daily builds distributed to all developers at the beginning of the day
was the only way around it.
That said, those where Omnis 7 days and in Studio the idents of classes
aren’t used often. In most code, classes are identified by name. There
are a few exceptional cases where we still use file classes and the
occasional code class where we take care to check those into the VCS as
they are referenced by their $ident, do fresh builds and distribute
those builds to the team to prevent issues with code using the wrong
class because of a mixup in $idents.
There is only one thing that is a headache, folders. We use folders
extensively to organise our libraries and Omnis Software did recognise
that there was a problem here. The introduced a new field into the VCS
called “vcs_uniqueid” and it is this field that “vcs_parentfolder” is
linked on. Unfortunately, regardless of the name, “vcs_uniqueid” is
anything but unique. Its very possible that issue has since been fixed
but its still broken in Studio 6.1.3 so I often find the need to go
behind the scenes and clean up the values in vcs_uniqueid.
That all said, the $ident is related to the slot in which the classes
are created in your library so its read only and you have no control
On 16/2/18 8:42 am, Scotte Meredith wrote:
> I am automating some builds out of the VCS in Studio 6.0.3.
> I can read the records from the Postgres VCS database and assign $classdata to a class I just created in the new library.
> The problem is that it doesn’t maintain the same $ident, so later is not identified as being the same component, because this is apparently done by $ident rather than $name, which makes sense. I’ve tried to assign the $ident of the component, or find a way to create it in the new library with a particular $ident to no avail.
> I’ve been trying to determine how the VCS gets data out of the VCS and into an Omnis library and maintains the $ident. I have an unlocked copy of the VCS but I’m not finding out how to set the $ident for my local library.
> Anyone done this before?
> Scotte Meredith
> Manage your list subscriptions at lists.omnis-dev.com
> Start a new message -> mailto:email@example.com