1. Jeff Gibson
  2. PowerBuilder
  3. Thursday, 26 October 2023 03:49 AM UTC

Environment. Latest and greatest version of PowerBuilder 2022 R2

GIT Client Installed

TortoiseGit Installed.

I'm uncertain if this is a how-to or an actual issue.

We have been setting up some new repositories in Bonobo. I'm working with one of the developers trying to show him the ropes on how to use GIT. How it works with PowerBuilder, etc.

Everything got committed and pushed into a repository. I was able to connect to workspace and pull the repository down to a second machine.

We started trading commits back and forth. So, he would apply a change to an NVO.  Commit.  Then Push.

I would pull that change to my machine locally. I would make another change. Commit.  Then Push.

You get the gist. We were just trading commits off the master branch so he could see how that part works.

 

My next step was to show how the ws_objects folder with all the objects residing in PBL folders worked.  So, I made a change to the same user object outside of PowerBuilder.

After saving that object change that I made outside of PB, the object showed that it had been modified in the Windows Explorer environment, but it was not updated in PowerBuilder. (I fully expected this)

Right click on the workspace and performed a Refresh.

Now the object shows that it has been modified in PowerBuilder as well. AWESOME!!

Commit the change in PowerBuilder.

Push the change to the repository.

Success! The object change that started outside of PowerBuilder made it successfully to the repository. 

 

Now comes my problem. The commit and push occurred inside PowerBuilder.  I expected when I went back and looked in Windows Explorer, the overlay icon would show "Green". That the commit had occurred.  

It didn't. It still showed red that it had been modified. 

I tried to commit from TortiseGit. Couldn't do it. Even thought it was showing red, it showed that the object was fully up to date when I looked at what was currently committed, etc.

I ended up meeting with one of our other developers that is coming over to PowerBuilder from the .NET environment. But he has an EXTENSIVE amount of Git experience.

After doing some digging, he asked me to try a Fetch on the folder containing the objects.  

BINGO!!  Object status fixed in the ws_objects folder.

 

This led to a deeper conversation where he mentioned that you should always do a Fetch first against the repository before you do any pull.

Do any of the PowerBuilder Git hooks that are native to PowerBuilder handle a Fetch? Or would a fetch need to be triggered manually outside of the PowerBuilder environment. 

 

I dug through the help docs and didn't find many detailed references to the Fetch command.

Any suggestions or ideas would be greatly appreciated!

 

Thank You Everyone!

Jeff Gibson
Nashville, TN

Benjamin Gaesslein Accepted Answer Pending Moderation
  1. Friday, 27 October 2023 10:14 AM UTC
  2. PowerBuilder
  3. # 1

Hi Jeff,

"you should always do a Fetch first against the repository before you do any pull" makes little sense to me because the fetch is literally integrated into the pull command. "Git pull", in the default configuration*, is a shortcut for two commands: "git fetch" + "git merge FETCH_HEAD". Where the fetch first updates all local remote-tracking branches (origin/master, etc) and the merge then merges the remote-tracking branch into the current local branch (fast-forwarding the local branch if possible). So, assuming that PB's "Git Pull" command actually issues a standard "git pull" command, a fetch should've happened already. Then again PBs git gui integration is very opaque so there's often no way to tell what actually happens in the background. 

Fetching does have the advantage that you can double-check the differences between your local branch and remote changes before you decide on how to proceed. But if you're going to pull anyway, there's absolutely no difference between straight pulling and doing a fetch first.

 

 

*it's possible to set it so it will rebase the local branch onto the remote-tracking branch but the fetch will still happen first.

Comment
There are no comments made yet.
kitty he @Appeon Accepted Answer Pending Moderation
  1. Friday, 27 October 2023 07:29 AM UTC
  2. PowerBuilder
  3. # 2

Hi Jeff,

 

The Fetch function has not yet been implemented in PB, but we have not reproduced the phenomenon you mentioned.

"After saving that object change that I made outside of PB" I'm not sure what this operation is exactly. (Objects in ws_objects were directly changed?)

It is best you report a bug at https://www.appeon.com/standardsupport/newbug so that we can better follow up on the problem.

 

Regards,

Kitty

Comment
There are no comments made yet.
Miguel Leeuwe Accepted Answer Pending Moderation
  1. Thursday, 26 October 2023 10:40 AM UTC
  2. PowerBuilder
  3. # 3

Fetch, pull, push, shelf, commit, refresh, revert, etc. https://www.geeksforgeeks.org/git-cheat-sheet/

Life's become so much easier using Git !

:-)

Comment
  1. Andreas Mykonios
  2. Friday, 27 October 2023 05:56 AM UTC
@Jeff Gibson.

I wonder if before issuing a git fetch you did a git diff to check actual differences.

Andreas.
  1. Helpful
  1. Jeff Gibson
  2. Friday, 27 October 2023 18:47 PM UTC
Andreas. Yes, I had performed a diff and even though the overlay was showing that it was modified, it showed zero differences between the versions of the file. That's what I had me so confused.
  1. Helpful
  1. Jeff Kandt
  2. Saturday, 4 November 2023 15:13 PM UTC
If you did a TortoiseGit Commit and it agreed with PowerBuilder and showed nothing to commit, then this just seems like a UI issue with TortoiseGit's overlay icons.

FWIW, personally I've never had a problem with PowerBuilder and the Windows Explorer icons staying in-sync, so I'm not sure why that's happening for you.
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.