With more developers working from home we have begun the transition of moving off our 'traditional' source control system to Git because of the remote advantages it has. As we begin to go down this path I am finding myself questioning how large companies with a lot of developers are able to manage the 'complexities' of PowerBuilder...the DataWindow...when multiple developers could be modifying the same object. In my mind, merging a DataWindow is the very last thing you want to do (and I would go as far as shouldn't do). Since you now have no 'Checking out' of objects it seems like this opens the door to so many more conflicts.
I am so use to checking objects out and organizing my coding life that way it becomes difficult to see the advantages of Git in a multi-developer environment. The main production team will work on multiple features, enhancements, etc at the same time and not having visibility to this seems odd to me.
Anyway, without going into too much detail I was hoping to get some real world feedback with some of you that might be using it with multiple developers.
Thanks for your input.
Chris Craft
We chose GitLab because of the very good CICD functions.
As far as I know, neither GitLab nor GitHub currently offers any advantages specifically for PB.
For GitLab I am currently considering adding syntax highlighting to power builder in the internal editors.
----------
To ensure that merging without conflicts using Git tools such as GitLab, TortoiseGit and Sourcetree works without PBL binary conflicts, we decided not to save the workspace's PBLs directly in Git, but to save them in a separate folder in the repository.
----------
Can you provide more details of how you do this? If the pbl files are ignored, how to you manage them in a separate folder in the repository?
sorry for the late reply.
We have decided to store the PBLs outside of Git.
For each automated build via Gitlab Pipeline, we save all PBLs as a ZIP file to a network drive with the current commit-sha as the file name. The files are then extracted during the next build and used for the compile.
A practical side effect is that we can retrieve cleanly compiled PBLs at any time and insert them into the local workspace.
We exclude *.pbls via .gitignore.
We have been using this method for about 4-5 years now without any problems.
Regards Tobi