Hi,
I've been reading up on the use of Git:
first this one: https://community.appeon.com/index.php/articles-blogs/tutorials-articles/2-powerbuilder/183-powerbuilder-2017-r2-new-feature-git-source-control-support
and then this one, which explains very clearly what to do and not to do:
https://community.appeon.com/index.php/articles-blogs/tips-tricks-techniques-articles/17-powerbuilder/227-tips-on-using-git-with-powerbuilder
I've pasted the most important stuff of this previous link at the end of my comment. (sorry for all the bold, I'm only trying to point out what is important in what follows):
This second link explains how the pbl upload works and indeed ... there is no need to separate the pbls from the source code. The advice I gave in previous answers is wrong, sorry for that, but that's how we work with other source control.
The trick is that when you first do an "add to source control" from the powerbuilder IDE, the pbls will be initially uploaded. After that initial upload, it should never upload the PBLs anymore when doing commit and push, only the exported *.sr? files will go to the server.
Do NOT do a "Clone", a new developer should "connect to the workspace" and that way he/she should get everything. "another user still needs to use PowerBuilder > Connect to Workspace to download and set up in his development environment. It doesn't work if you simply copy the entire workspace folder over to the other user's machine. "
A new developer who has connected for the first time, will get the 'old, initially uploaded' pbls, when the project was "added to source control" at the start. So the newly connected developer also has to do a REFRESH.
When you do a PUSH, the pbls don't go to the server (or at least they shouldn't ).
When you do a PULL, you should not get the pbls again, you should only get the exported files which then will be build into your local pbls.
The "Upload PBL, followed by a PUSH" option, should only be used if after creating a new pbl when after some time in the project, you have created or added a new pbl.
Is maybe one of your developers using this "Upload PBL" all the time?
You have probably read all of this before, but maybe you missed something since you said your English is not perfect.
Just my 2cts. on how I think it should work, if it doesn't then there's a bug. Good luck! Here's an excerpt of the second link I gave you:
---------------------------------------
After you have uploaded your workspace using PowerBuilder, another user still needs to use PowerBuilder > Connect to Workspace to download and set up in his development environment. It doesn't work if you simply copy the entire workspace folder over to the other user's machine. Nor will it work if you use a Git client to download the workspace. The PowerBuilder Git feature will only be activated for the other user after he uses Connect to Workspace to set up his workspace.
Another thing is that as the associated data for the Git settings for a workspace is saved in the registry tied up to the workspace path, The PowerBuilder Git feature will be disabled if you move the workspace to another location.
#2 When to use the Refresh menu item
There are mainly two situations when you need to use the Refresh function.
- The first time you do the Connect to Workspace to set up your local workspace.
- After you directly modified the source code outside of the PowerBuilder IDE.
The reason behind this is that PowerBuilder IDE doesn't load the code directly from the source code files. It only displays the code saved in the PBLs. Ideally, PowerBuilder should be managing all the synchronization automatically. The reality is that PowerBuilder only pulls the source code in to PBLs when you do a Git Pull. On the other hand, it only exports an object to the source code folder when you save it in the IDE. Synchronization of anything changes happened in other manners have to be taken care of manually.
So, as PBLs are only uploaded once during Add to Source Control. The later code changes are not reflected in the PBLs on the server. So the first time you download the code from the server, you need to do a manual Refresh.
#3 When to use the Upload PBL menu item
Normally you don't need to use this feature. When you do the "Add to Source Control" and do the first Git Push for setting up the repository all the PBLs in your workspace will be uploaded to the server automatically.
By default, PB will not commit or push the PBLs to the server thereafter; Only the *.sr object source files will be committed and uploaded in later operations. If there are any changes on the server in the *.sr files, they will be downloaded and imported to the PBLs when you do a Git Pull. So it kind like the PBLs are dynamically built when you do a Git Pull. But the dynamical building process requires the presence of an skeleton PBL, which is why the original PBLs were uploaded when you set up the repository.
Now, there is one situation you do have to use Upload PBL. That is when you add a PBL to the workspace. This is so that your colleagues will be able to get the skeleton PBL when he pulls in your changes from the server.
Note: Upload PBL doesn't literally upload the PBL. It only commit the PBL and you still need to do a Git Push to really upload it to the server.