Page 1 of 1

PB 12.5 and SVN server status refresh

Posted: Wed Jan 07, 2015 2:51 pm
by rdojr
I'm in the final stages of evaluating Agent 2.39 for use with PB 12.5 Classic. PB status refresh from the SVN server is the only issue I have not been able to resolve. Here is the setup:

PB 12.5.1 Classic
Agent 2.39
Tortoise 1.8.10
SVN 1.8.10, running svnserve.exe

When Agent's 'Cache the SVN status results' is unchecked, opening PB takes at least 10 minutes while status is refreshed. Performing a 'Get Latest Version on the target (26 .pbls, 5500 objects) can take 20 minutes. Running this way is not an option for us.

When 'Cache the SVN status results' is enabled, refresh and GLV speed is comparable to our current plug-in (PushOK). However, status icons can take up to 5 minutes to refresh, and sometimes not at all. Example:

User 1 checks out object
User 2 refreshes status, sees check-out icon on object
User 1 checks in
User 2 refreshes, sees out-of-date icon
User 2 runs 'Get Latest Version' on object
-- Message 'Local file has been modified - overwrite' appears. Click Yes
-- Icon does not change. 'Show Differences' indicates GLV did not update object from SVN
-- GLV on parent .pbl or target - message repeats, object not updated
User 2 must check out / undo check-out to get the current version from SVN

I have tried:

-- Renaming Agent's Subversion\bin folder, then copying Tortoise files into an empty replacement folder. This is suggested in Agent Help and in this forum. Status refresh behavior did not change.

-- Copying Subversion's .dll and .exe files into Agent's Subversion\bin folder, replacing existing files. No change in behavior.

Attached are screenshots of Agent's configuration and its binding to PB. Any suggestions?

Thank you,
Don

Re: PB 12.5 and SVN server status refresh

Posted: Thu Jan 08, 2015 2:56 am
by jussij
Hi Don,
When Agent's 'Cache the SVN status results' is unchecked, opening PB takes at least 10 minutes while status is refreshed.

That is correct. That 'status cache feature' was added specifically for PB.
Performing a 'Get Latest Version on the target (26 .pbls, 5500 objects) can take 20 minutes.
The slowness is the result of two factors.

Firstly, as shown by your example of 5500 objects, PB structures the code into many thousands of smaller objects, with each object in it's own file.

So naturally when PB does a 'Get Latest Version' operation it has to do that operation for each and every one of those thousands of object files.

Secondly, when the SVN status command is run over the https protocol is runs extremely slowly.

Those two factors result in the very slow operation you are seeing.

With the cache option enabled Agent SVN tries to reduce these number of status requests.
However, status icons can take up to 5 minutes to refresh, and sometimes not at all.

Do the status icons display correctly when the cache is turned off :?:

In other words does this look like a issue with the cache option :?:

To get the status to work, PowerBuilder added the SccQueryInfoEx function to the MS-SCCI interface.

The only problem is, while they were happy to add the function to the interface, they also refused to document how that function actually works :(

Agent SVN contains a reverse engineered version of the SccQueryInfoEx function, so naturally there is a chance it might be wrong :(

For your example:

Code: Select all

User 1 checks out object
User 2 refreshes status, sees check-out icon on object
User 1 checks in
User 2 refreshes, sees out-of-date icon
User 2 runs 'Get Latest Version' on object
-- Message 'Local file has been modified - overwrite' appears. Click Yes
-- Icon does not change. 'Show Differences' indicates GLV did not update object from SVN
-- GLV on parent .pbl or target - message repeats, object not updated
User 2 must check out / undo check-out to get the current version from SVN
Could you turn on the debug option inside the Agent SVN Configuration utility, repeat the example above and send me the resulting log file.

You can locate the log file using the button found in the configuration dialog.

My e-mail address can be found inside my profile, which is located at the top left corner of this reply.

Cheers Jussi

Re: PB 12.5 and SVN server status refresh

Posted: Thu Jan 22, 2015 2:25 am
by jussij
With the help of Don these status issues have been ironed out in the latest version of Agent SVN found here:

http://www.zeusedit.com/agent/download.html

I would recommend that not just Power Builder users, but all users upgrade to this latest version.

My big thanks goes out to Don for helping to fix these issues :)

Cheers Jussi