tags:

views:

78

answers:

3

Hi,

I am working on an application whose primary purpose would be to provide source control management. My idea is to use to SVNKit for file check-out and check-in. However, while working with SVNKit, I realised it does not have the speed I was looking for. For instance, whenever developers create a ChangeRequest, which can encompass change in 3-40 files, I have to create a directory structure distributed across 32 folders. Doing so takes around 50 seconds, Another instance is that after creating change request developers can add files to the request. Copying even a single file from Trunk to branch takes around 6-7 secs. My question is has anyone had experience like this and what did you do to improve the performance? Moreover, is my approach correct?

NOTE: I am using "http" protocol and can't use "svn" protocol.

A: 

I don't know the details (what kind of files, how large individual files are?), but SVN is not that slow.

We use it here and works fine.

Just curious, where is your SVN server hosted? Within or outside of your network? It might be slow because of network?

Abdul Qabiz
I am at client location, so it within the network. But for folks at non-client location, this will slow down things more.Can you tell me how much does it usually take it for you when in the network for:1. Create a folder in the repository.2. Copy file from repository to repository.
Gabriel Parenza
I would say, it would take anywhere around 1-2 seconds an empty folder while committing. If folder has lots of files, it would take time to add those and then commit. Copying a file to branch, I do it directly on server instead of copying locally and then committing.I use svn command line tools.
Abdul Qabiz
+1  A: 

Generally SVNKit is full Java implementation of subversion. And yes, it is much slower then native one. So if you are not restricted to Java Only code you may try:

  • Use native SVN C API.
  • Use SVN Java bindings

Fore more information read: http://svnbook.red-bean.com/en/1.5/svn.developer.usingapi.html box "SVNKit Versus javahl"

Also note... protocol has almost no effect on performance (really).

Artyom
A: 

This truly isn't much information, mostly passed forward as rumor:

  • SVN has serious scaling issues as the number of users into the three or four digits. People tend to pull copies and there are some poor scaling options.
  • PerfForce, the commercial product, does not have scaling issues.
  • GIT has no scaling issues, though it is easy to corrupt.
  • Mercurial works well and scales well. Then someone's high-horse shows up and barfs on checking in very large files. It has CR/LF issues as well.

This is all rumor.

Charles Merriam