Skip to main content

Source Control using Git for UV accounts

  • August 18, 2023
  • 4 replies
  • 3 views

Has anyone had success using Git as a source control platform for UV accounts?  We're looking to do true source control (ex. developer branches merging changes into the main branch) and not just copy/pasting say BP's with changes using a simple folder structure.

Thanks

Steve



------------------------------
Steven Smith
Software Developer
Rocket Forum Shared Account
------------------------------

4 replies

James Adrig002
  • New Participant
  • 4 replies
  • August 18, 2023

Has anyone had success using Git as a source control platform for UV accounts?  We're looking to do true source control (ex. developer branches merging changes into the main branch) and not just copy/pasting say BP's with changes using a simple folder structure.

Thanks

Steve



------------------------------
Steven Smith
Software Developer
Rocket Forum Shared Account
------------------------------

We use SVN; but you may have a similar issue with Git in that UV is not like 'normal' version control systems because developers all work on the same codebase on a server (if you have installed UV on each developer's system then this isn't an issue, but most shops do not do that).

So we setup each developer with their own 'parallel' account where we just copy the primary VOC (which has all absolute paths for all data files; so data is shared); and then switch all the BP pointers in their VOC to a separate 'source' directory.

Then they work on their own copy of the code and checkin/out/branch etc as usual (which I assume is similar for GIT); and no one normally works directly on the actual account source directory.

  • James



------------------------------
James Adrig
Software Architect
Rocket Forum Shared Account
------------------------------


  • Participating Frequently
  • 20 replies
  • August 19, 2023

Has anyone had success using Git as a source control platform for UV accounts?  We're looking to do true source control (ex. developer branches merging changes into the main branch) and not just copy/pasting say BP's with changes using a simple folder structure.

Thanks

Steve



------------------------------
Steven Smith
Software Developer
Rocket Forum Shared Account
------------------------------

There's so many places and ways to put code into UV. Are you looking to version just basic souce code files or other things like BP.O files  , Dictionary I-Descriptors, and VOC paragraphs? Maybe a combination of GiT and UV audit logging could work. It's a great question that I've often thought about too.



------------------------------
Mike Bojaczko
PROGRAMMER ANALYST
US
------------------------------

  • New Participant
  • 1 reply
  • February 9, 2024

There's so many places and ways to put code into UV. Are you looking to version just basic souce code files or other things like BP.O files  , Dictionary I-Descriptors, and VOC paragraphs? Maybe a combination of GiT and UV audit logging could work. It's a great question that I've often thought about too.



------------------------------
Mike Bojaczko
PROGRAMMER ANALYST
US
------------------------------

We are also attempting to put an entire UniVerse account under source control (using GIT). The closest we've come to success is when we have created "mirror" (type 19 folder) files of our dictionaries, VOC and BP (source code) files. We use light-weight triggers to keep the mirrored files in sync with changes to the production files. 

We went down this route since VOC and Dictionary files don't work well as type 19 folders.

The problem we are stuck on is with GIT and the .gitignore file configuration to ignore all diffs except for the mirrored files in the UniVerse account. GIT is adamant about showing all diffs, even changes in the hashed data files. We don't want to show those diffs.

What methods do you all use for source control? Are any compatible with GIT? We use GIT for our C# and VB code and would like to use it for UniVerse.

Our applications run on Windows and UniVerse.

Thanks!



------------------------------
Gil Steidle
Developer
DDI System Inc
------------------------------

Joe Goldthwaite
  • Participating Frequently
  • 124 replies
  • February 10, 2024

We are also attempting to put an entire UniVerse account under source control (using GIT). The closest we've come to success is when we have created "mirror" (type 19 folder) files of our dictionaries, VOC and BP (source code) files. We use light-weight triggers to keep the mirrored files in sync with changes to the production files. 

We went down this route since VOC and Dictionary files don't work well as type 19 folders.

The problem we are stuck on is with GIT and the .gitignore file configuration to ignore all diffs except for the mirrored files in the UniVerse account. GIT is adamant about showing all diffs, even changes in the hashed data files. We don't want to show those diffs.

What methods do you all use for source control? Are any compatible with GIT? We use GIT for our C# and VB code and would like to use it for UniVerse.

Our applications run on Windows and UniVerse.

Thanks!



------------------------------
Gil Steidle
Developer
DDI System Inc
------------------------------

Since the F pointers in Universe can point to anywhere on the disk, the method we used was to move the source files to a separate folder and modify the F pointers to point to them. This is transparent to the MVDB programs but it allows you to keep all the source files in a separate folder where git can better handle them. It also makes backups easier since the data and source code are on separate parts of the disk

All of our accounts were in an /accts folder. We created a /source/accts folder where we mirrored all the files we wanted to track. For example, we took the BP file from /accts/main (our main account)  and moved it to /source/accts/main. In the main account we changed line 2 of the f pointer from /accts/main/BP to /source/accts/main/BP. 

You'll still have to do your mirroring of the VOC and dictionary files but you don't have to mess with the .gitignore at all. Your source folder will only have the things you want to keep in git. It also simplifies backups since your main data files will now only contain data.



------------------------------
Joe Goldthwaite
Consultant
Phoenix AZ US
------------------------------