CodePlex, Performance and Usability
I am trying to get some code from CodePlex at the moment. Since I am used to SVN and its model,I downloaded SvnBridge and hooked it up, then tried to check out the source code.
Fast forward about an hour later, and it is still have not checked out a single file. I am pretty sure that it is not an issue with the network, or anything like that. I believe that it is doing a full download of the source code locally, and then fake SVN from there, but I haven't checked.
Then I tried the CodePlex Client, that started out with the same exact behavior, but after several minutes, it began to download the actual files. The download rate seems to be a file every 3 seconds, which seems to suggest that it is making a call per file. I checked the code (by reflecting over the assembly, which is infinitely faster then actually check out the code) and it looks like this is what it is doing.
Consider that most projects has several thousands of files in them. Using this approach, it would take over 8 hours to checkout NHibernate's source code and over a day to checkout Castle's course code.
By comparison, checking out NHibernate takes about 20 minutes using SVN, and Castle takes about an hour. Most of the time is spent because of bandwidth limitations, nothing more.
I am not sure if the "make remote call per file" is because TFS model or it is just something that the CodePlex team did, but it is something that makes working with any sort of code there an absolute nightmare.
Update:
Just to clarify, the main problem seems to be that it is ignoring the network realities far from wherever the CodePlex servers are. Apparently the speed is adequate from the US.
Comments
Checking out Castle was much less than hour for me last time I did it. And really something very wrong with CodePlex.
Nothing new here, though. There is always something wrong when Microsoft tries to reinvent the wheel.
Some other folks are having that issue also:
http://www.codeplex.com/SvnBridge/Thread/View.aspx?ThreadId=14878
I haven't been able to do a checkout so far. I'm waiting on SvnBridge :-)
Ok. got it checked out. Took about 10 seconds. I made the mistake of sending my TortoiseSVN to http://localhost:8081. Big mistake. In repository browser, it listed every project on CodePlex. It took a while. Then, I sent it to http://localhost:8081/projectname/trunk, and it was a fast checkout. We'll see how commit performance is.
Jeffrey,
You need to check out performance over long range distance. I half a world away.
Ok. I'm fed up. We'll probably move. I have to talk to Eric Hexter about it. We have a working build and source tree now, but we can't seem to commit full trunk commits at once. SvnBridge keeps crashing on me. The exact operation is adding the nant distribution so that the build works right away when someone does a checkout.
In other words: I can't perform a realistic commit. That's a BIG deal.
My understanding is that the CodePlex folks are very well aware of the issues with operations on high latency connections and were even able to get changes made for TFS 2008 to address them. Perhaps some improvements will be seen when they get a chance to upgrade. In the meantime I do agree it is a PITA. I've been using SVN the most over the last few years, and as much as there are things that I like about TFS (which I use at work) I still think I'd rather we were running on SVN. :(
I haven't done any work on CodePlex Client because I've been expecting everybody to migrate to SvnBridge once it's finished. We could parallelize the network access to help improve some download performance (and SvnBridge does do this), but it won't change the fundamental problem that the TFS APIs are designed for the LAN, not the Internet.
Once a server version of SvnBridge is deployed, this should alleviate the problem for remote people, because the SVN protocol is well suited to run over the Internet, and the SvnBridge server will be very close (in network terms) to the TFS servers it's talking to.
Brad,
Do you think there's any chance that CodePlex will finally breakdown and offer Subversion hosting? There's always the option of hosting the sourcecode somewhere else and using the CodePlex shell for everything else too.
Jeremy, I'm not on the CodePlex team any more so I don't really have any insight onto whether they're going to offer "real" SVN. I know there is a plan to offer a server-version of SvnBridge, which should serve most purposes since you'll be able to use any SVN client. Read into that what you will. :)
Comment preview