We switched some time ago from Subversive to the Subclipse svn-client. We noticed several times at different PC’s the following :
After a SVN-synchronize the update of a form.frm file is OK in the project explorer (open with text editor) but opening that form in the servoy designer gives an older version of that form !
After restarting Servoy also the solution explorer (= form designer) is up to date and reflects the content of the .frm file as seen earlier in the project explorer.
It seems as if the servoy solution explorer (tree) is not always refreshed after SVN synchronize…
i guess somehow the refresh() didnt happen at your place.
You could trigger it manually for example in the Navigator view, select a project and press F5 (or context menu ->refresh)
That will result in eclipse checking all the resources.
The SVN eclipse plugins dont use the Eclipse file api to manipulate all the files. It could even that the writing and updating of the files is done by native code (JavaHL lib)
and the eclipse plugins then call refresh on those files to let eclipse know that the files are changed.
I guess in your situation that last call didnt happen somehow or was lost.
jcompagner:
i guess somehow the refresh() didnt happen at your place.
You could trigger it manually for example in the Navigator view, select a project and press F5 (or context menu ->refresh)
That will result in eclipse checking all the resources.
The SVN eclipse plugins dont use the Eclipse file api to manipulate all the files. It could even that the writing and updating of the files is done by native code (JavaHL lib)
and the eclipse plugins then call refresh on those files to let eclipse know that the files are changed.
I guess in your situation that last call didnt happen somehow or was lost.
Hi Johan,
It happens on a daily basis on my site.
Refresh in solution explorer, refresh in project explorer and clean projects does not solve the issue.
Only Servoy restart solves it !
do you have project->build automatically enabled?
Maybe it is related to that
But if you do all those refreshes then eclipse is in sync with the filesystem.
So i dont know why then still the forms are not in sync with them, i havent seen that.
Also when you just open a frm file and you change the location of an element there by hand and you save the file
Do you see the change happening in visual form editor?
jcompagner:
do you have project->build automatically enabled?
Maybe it is related to that
But if you do all those refreshes then eclipse is in sync with the filesystem.
So i dont know why then still the forms are not in sync with them, i havent seen that.
Also when you just open a frm file and you change the location of an element there by hand and you save the file
Do you see the change happening in visual form editor?
Hi Johan,
I did not perform your last test yet. For now I deleted my complete workspace and checked out again from svn-server.
If I encounter the problem again I shall apply your test to see what happens.
Looks like I have a situation here that is similar. Once machine has no issues whatsoever, the other needs an Eclipse restart after update.
Will investigate further.
Well, I found a case where the table editor view is showing the wrong values while the actual raw JSON file is completely identical to the SVN version and the other machine that committed it. And even the problems view shows errors related to this.
I created case #278247 for this with attached screenshots of both machines.
Menubar > Project > Clean, refresh in the solution explorer tree, even restarting Servoy doesn’t help. Very weird (and frustrating)
We are really hoping there is a quick resolution to this issue as it’s critical we can keep 5 dev PC’s in sync - during final build and getting ready for roll-out!
Is it obvious there are differences or do we need to do some sort of comparisons to check for completeness in the SVN update on each PC?
The way I see it is that the files in the workspace are identical.I checked them manually, did a compare with SVN, they are the same. But somehow the table editor and the problems view think otherwise.
Makes me wonder if they are using metadata that is not in sync or something instead of actually looking at this file.
Also I don’t think this is new to 5.1 either. I remember that we had to fix our UUID flags in the table settings many times over in 4.1.x and 5.0. But then we were also using Subversive (and ‘lost’ a bunch of workspaces).
@Servoy. I made a backup of the offending workspace so if you need it I can send it to you.
I had a case what shows the problem very clearly :
I have a global variable version_number located in a js file. This variable is shown in our initial login form. The js file has just been updated through Subclipse from our SVN server.
When I open the JS file with Servoy editor (double click on the variable in Solution Explorer) I see : version_number = ‘1.1.5’
When I launch the smart client I see : Version 1.1.4
1.1.4 was the value in my previous js file (of course).
Only after restart Servoy I see the expected 1.1.5 in my login form.
(I also had cases that the form designer shows the ‘old’ form if that form was just updated from the SVN server)
For now for me : Restart Servoy after each update…
robert if you can give me a link to that workspace i can take a look
Lambert maybe the same for you, do you have a workspace where i can see that?
What i find weird is, if you just touch the file with that version number so you got an update through SVN that you didnt see, but what happens if you just up the number again by yourself?
Do you see it then?
Also make sure that if it is a variable (global or form) that just has “x = 10” and you change it (yourself or svn) to “x = 11” then a running client will not see that change.
You have to restart the client (File → close in smart client) so that the solution is reloaded
Okay, I’ve got response back from Servoy Support.
Seems the second machine we used has startRepositoryAsTeamProvider set to true. This setting means you can use the local Servoy server as teamserver. But it also means it ALWAYS reads the table information from the repository database. NOT from the *.dbi file in the workspace.
So in short, we have to set startRepositoryAsTeamProvider to false and it all will work as advertised.
May this be a HUGE heads-up for you all using any other teamserver than Servoy Teamserver. You can’t mix a local Servoy teamserver with another type of teamserver (i.e. SVN).
Remote Servoy teamservers shouldn’t be a problem because your developer doesn’t use it’s properties file. A local teamserver does (since it’s part of your developer environment).
ROCLASI:
Okay, I’ve got response back from Servoy Support.
Seems the second machine we used has startRepositoryAsTeamProvider set to true. This setting means you can use the local Servoy server as teamserver. But it also means it ALWAYS reads the table information from the repository database. NOT from the *.dbi file in the workspace.
So in short, we have to set startRepositoryAsTeamProvider to false and it all will work as advertised.
May this be a HUGE heads-up for you all using any other teamserver than Servoy Teamserver. You can’t mix a local Servoy teamserver with another type of teamserver (i.e. SVN).
Remote Servoy teamservers shouldn’t be a problem because your developer doesn’t use it’s properties file. A local teamserver does (since it’s part of your developer environment).
jcompagner:
robert if you can give me a link to that workspace i can take a look
Lambert maybe the same for you, do you have a workspace where i can see that?
What i find weird is, if you just touch the file with that version number so you got an update through SVN that you didnt see, but what happens if you just up the number again by yourself?
Do you see it then?
Also make sure that if it is a variable (global or form) that just has “x = 10” and you change it (yourself or svn) to “x = 11” then a running client will not see that change.
You have to restart the client (File → close in smart client) so that the solution is reloaded
Johan, I shall test it the next time. But aside of my own edits we can still say there is something outdated (in the Servoy metadata ?) after SVN-update !
lwjwillemsen:
Johan, I shall test it the next time. But aside of my own edits we can still say there is something outdated (in the Servoy metadata ?) after SVN-update !
no you cant say that now, because the real data of server is what is on disk
In mem we just have a representation what is on disk, that the change is coming from svn instead of your own edit shouldnt matter at all.
For eclipse that is just the same, we get a file change event. And then we update our internal representation to match what is on disk
But maybe we have here a bug. That somehow you will not see the change or something, but first make sure that that same change is seen when doing by hand
That would be even weirder in my eyes then it is really something inside eclipse or the svn plugin.
i have 2 installs of servoy 5.1 with the latest subclipse 1.6.10
those 2 installs point to there own workspaces which both have checked out the same thing.
I open in both of them the same form.
Then i drag a element a bit. and commit that.
Then i update the other and i see the editor updated right away.
I use here for both servoys Servoy 5.1.x on windows in a 64bit java and with subclipse i use the SVNKit (not JavaHL)
Edit: also tested it with a 64bit version of JavaHL also there i dont see a problem.