When you decide to start using SVN as a repository for all your sourcecode, you will need to choose and install and SVN Client in your Eclipse environment.
An SVN Client gives you the ability to communicate with SVN Repositories, so you can store, retrieve and update your sourcecode in the SVN repository.
Our experience is that most people end up using Subclipse, for unknown reasons. We started using Subclipse ourselves, but recently, we decided to switch over to Subversive for a couple of reasons.
We noticed that Subclipse has problems handling large numbers of small file. A Servoy solution in Eclipse consists of many small files, quickly exceeding 10.000 files for the average solution. When trying to share and commit a solution into SVN using Subclipse (existing solution we exported from Servoy 3.5 and imported into our local workspace through the Servoy Admin Pages), we experienced an endless running Subclipse Progress bar. When we tried to do the same using Subversive, we experienced no issues
Subversive has more intelligent SVN Repository browsing: Subversive recognizes the “standards by convention” structure of trunk, tags and branches in the repository, whereas to Subclipse, those are just directories like any other
The overall progress reporting on actions with Subversive is more accurate
Subversive automatically suggests to commit after sharing your solution into SVN, whereas in Subclipse this is a manual action
Subversive allows you to share multiple solutions (projects) in one go, whereas in Subclipse you have to share each solution individually
Subversive does a better job suggestion a location in the SVN Repository when sharing a solution
Subversive seems noticeably faster for a lot of operations
All in all we find Subversive nicer and easier to work with, but most important, we haven’t experienced any problems with it.
I think that I have the server installed and configured - on a win server on LAN
It’s more the integration with developer now to get the subversion plugins installed into Servoy and then link to the SVN Server
There obviously seems to be help for Team Provider and of course not an add-on to Servoy - but Subversion/Subclipse seem to be the de factos and not TP !
So looking for a heads up on getting developer configured and in sync with SVN Server
Dev machines are running OS X - not that this should make a difference
Successfully set up SVN using Subversive and an online host supporting the server and all working well
Coming up against changes being required to DB schema which need then to be replicated to other remote developer(s)
Anyone have a ‘how to’ on handling these table/column changes and any gotchas ?
Cheers
Harry
BUMPING this post to see if anybody has any sources to go for information - ALSO thoughts needed on how to get a new developer synced correctly with the SVN server where this dev has only the db and db server set up in Serclipse environment
pbakker:
Apparently, Subclipse picked up on the reports about performance issues with many (small) files
Small update: I tried starting with SVN today with quite a big project and find that Subclipse is still struggling with large numbers of files.
The most annoying thing is that Subclibse gives poor feedback on progress and at some point you don’t know if it ‘hangs’ or that it’s still seriously running.
Subversive is much nicer and works better (at least) at this point!
Maybe someone from Servoy can update the team-provider docs at the website on this, as this still does mention ‘just’ subclipse and not ‘subversive’
The pro’s and con’s should at least be part of this and the user can decide what to do…
Has anyone used Perforce as a SCM with Servoy/Eclipse? I’ve heard it is much faster than subversion or subclipse.
We are finding subversion to be glacially slow at check-in and check-out of a large solution. 7 hours to check-in a solution is not reasonable…Subversion must install a rodent in the wires which manually carries each of the 26,000 files, two rooms down the hall to the server, depositing the file and then it turns around and crawls down the wire to fetch another file. This software is unusable for large solutions. Our development team is in revolt!
I don’t have any experience with Perforce. We are using Fortress/Vault from SourceGear (www.sourcegear.com). It works without any problems within Eclipse and it’s fast enough (1000 folders, 9000 files). Check it out, they have a 30-day evaluation version.
We have over 100,000 files and 45,000 folders in 4.1.4, when we try to even convert with beta 4 we get dozens of errors from SVN. At the moment I assume we have rogue locks on the directories or folders it can’t move. Once we get to 5.x we’ll still have about 26,000 files. Almost all are in globals and resource module. Wish Servoy could have not only moved elements to a record, but columns on tables as that accounts for at least 4,000 files. Several thousand relations are still there also.
To quote a developer on the web who expressed his impression of subversion well…
Slow. Can you say slow? My god, Subversion is slow. How slow? Slower than a molasses glacier trapped in a stasis-producing rift in the fabric of space-time. Want to commit a file? Get ready to stare at the wall for a good 15 seconds. Heaven help you if you want to create a branch, which can take a good hour on a decent-sized repository. KDE recently switched to Subversion from CVS; I assume that their Subversion admin team consists of giggling enuchs who take turns branching KDE releases while being whipped as they are repeatedly dunked upside-down into a vat full of piranha-infested human waste with mercury pouring down their throats, with breaks in between sessions to dress their wounds with salt bandages.
personally i dont really have any speed issues with SVN, yes it is a bit slower then CVS but it does do a lot more
What is important is that you do use the latest SVN, especially also the eclipse client, subclipse is at 1.6.5 at the moment! And then do try to use the JavaHL platform binary.
1 big file for a server with all the tables and then all the columns would be a bit messy if you ask me.
And we need the table dir anyway because of calculations.
Thanks Johan, we’ll be upgrading or SVN soon. We have switched to JavaHL connectors also. We did find that by deleting the projects (48 of them) before committing, reduced the commit time from 10-12 hours to 15 minutes. We had over 126,000 files in our workspace that were reduce to under 23,000 files. We just think SVN chocked totally on trying to deal with comparing all the changes and deleting 103,000 files on the SVN server. Just pushing the smaller quantity of files without doing any ‘synching’ seems to be the way to go. Then when each developer checked out, they created a new workspace and the checkout was also very very fast. The conclusion was get rid of all the old pre 5.x stuff in the way of converting to 5.x. Of course we had backups of the 4.1.4 versions prior to this way of getting there.
Guidelines as to what versions of SVN and what connectors to use on each OS would always be very helpful for everyone, since Servoy is now so tied to Eclipse. Maybe we missed those facts somewhere on Servoy’s website or forum.
I hadn’t thought of the calculations as far as further reduction of files, good point. Plus you have already reduced almost 80%. Servoy 5.beta 4 is much, much faster everyone is so happy with the performance improvements.
Harry Catharell:
Anyone have a ‘how to’ on handling these table/column changes and any gotchas ?
Once you have SVN set-up + solutions & resources project checked in, other developers can check out and use the “Synchronize with DB server information” action under “Database servers” or server nodes to handle changes to tables/columns. You just need to have the DB servers defined, and that wizard will allow you to create/remove tables and get problem markers for column differences (compares SVN checked out .dbi files with your existing DB servers). You can then solve the problem markers using “quick fix” one by one or by selecting one quick fix for all similar problem markers.
In order to do all this you need to have startAsTeamProvider set to false in properties.
Edit:
Oops! I see I forgot one thing in the video.
IMPORTANT: also disconnect/unshare your resources!
I uploaded a new version of the video where it mentions this.
Here is another thing, which made me going mad the whole weekend.
I think most of u guys will allready know, but maybe some will not.
I wanted to checkout a solution at home, on which i am working right now.
I right-clicked in the “all Solutions” node, and then checkout.
!THIS IS NOT THE WAY IT WILL WORK! gnarf.
I tried ALL imaginable path to get my solution checked out. But all i got were lousy errors.
Here is the way to go:
Chos´e from the menu:
File → Import → SVN → Checkout Projects from SVN
Add Your Repository URL if its not allready there.
Checkout.
Start to work.
Took me 2 FU**ING days to figure it out.
So, to avoid more collateral damage (right now: 1 Keyboard, traces of my teeth on my desk, and my girlfriend not talking to me for an hour or so, because i was rude to her)
I figured to mention this for others, who face the problem than i did
Yeah, perhaps Servoy should rename that option to Servoy Team Server-ONLY checkout or something…
Just a thought.
Anyway, another way to check your sources out from SVN is to go into the SVN Repositories perspective and expand the connection in the SVN repositories view (on the left). Expand the trunk node (if you use this repository format) and then right-click on the projects you want to check out.