Rocket U2 | UniVerse & UniData

 View Only
  • 1.  Source Control using Git for UV accounts

    Posted 08-18-2023 11:57

    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
    ------------------------------


  • 2.  RE: Source Control using Git for UV accounts

    Posted 08-18-2023 18:41

    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
    ------------------------------



  • 3.  RE: Source Control using Git for UV accounts

    Posted 08-19-2023 14:08

    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
    ------------------------------



  • 4.  RE: Source Control using Git for UV accounts

    Posted 02-10-2024 10:01

    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
    ------------------------------



  • 5.  RE: Source Control using Git for UV accounts

    Posted 02-10-2024 10:19

    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
    ------------------------------