Problems commiting large project

Problems commiting large project

I set up a new project on my SVN server and tried to do the initial commit (10000 files, 9500 folders).

This takes a very long time (about 15 minutes) with high cpu usage and fails in the end with the following error.

I use Subversive 1.1.2 on Eclipse 3.3 (Europa) with SVNKIT 1.1.1 and Subversion 1.4.2 server.

Posted: Wed Jul 11, 2007 12:20 pm

by SMLP

This happens only when using SVNKIT 1.1.1 as client.

The reason for this is that, when using SVNKIT, the authentication on the server fails (apache2 reports: "passwords mismatch").

When using JavaSVN as client, the problen does not occur, so the reason for the problemmust be connected to the client library.

Posted: Thu Jul 12, 2007 1:35 pm

by SMLP

I first thought the source of the MKACTIVITY http method problem may be the proxy server, but the svn host is included in the "non-proxy" list in the Eclipse preferences.

SVN is accessed through apache2 module.

As said, the problem does not occur when using JavaSVN 1.0.4 client. Any idea?

Posted: Thu Jul 12, 2007 1:36 pm

by Alexander Gurov

Dear SMLP,

Thank you for your opinion.

First of all next Subversive version will contains SVN Kit 1.1.2 with lot of fixes. Also now we works with SVN Kit authors on improving of the next SVN Kit version and one of future Subversive builds will contains SVN Kit 1.1.4 with additional fixes which improves client stability in multithreaded environment.

About the "error updating hyperlink to console": this well known issue will be fixed with Subversive 1.1.3 version.

As I remember, commit performance issue relates to Synchronize View. Commits from the package explorer haven't performance restrictions if no resources are excluded from the commit set. So, definitely we will optimize commits from the Synch View, but commits from the Package Explorer could be used as workaround for the problem.

Posted: Thu Jul 12, 2007 2:29 pm

by SMLP

Great news, I am looking forwars to the next version!

When do you expect it to be released?

Posted: Mon Jul 16, 2007 10:07 am

by SMLP

I updated to the new version 1.1.3 and tried to commit a file. I always get the MKACTIVITY error shown in the first post (see above).

Right now, we are unable to use Subversive 1.1.3 due to the MKACTIVITY problem when commiting resources.

When we used Subversive 1.1.2 with JAVASVN 1.0.4 client, we were able to commit resources, so the problem is related to the new SVNKit versions. did the older client not use MKACTIVITY?

We have proxy disabled in Eclipse.

Posted: Mon Jul 16, 2007 11:53 am

by SMLP

I noticed that somehow Subversive sends all request through our proxy, but proxy is disabled in Eclipse network options.

Any other ways to tell Subversive wich proxy to use/not to use?

Posted: Mon Jul 16, 2007 12:19 pm

by SMLP

Ok I found the solution.

1. The source of the MKACTIVITY problem was that the request was passed through our proxy, wich does filter the MKACTIVITY http method out.

2. Because we were aware of this problem, we disabled http proxy in Eclipse (Window > Preferences > General> Network Connections and thought Subversive would no longer send requests though the proxy. I analyzed network packages and realized that nevertheless we disabled the proxy in Eclipse, the request still went though the proxy, causing the MKACTIVITY problem.

3. In my "Aplication Data" directory of my profile (Win XP), there is a "Subversion" directory with a file inside called "servers". This file contained entries describing our proxy server (see here). We created there entries long time ago to access a SVN repository in the internet via the command line SVN client.

4. After disabling the proxy entry in that file, Subversive no longer sends request though out proxy. Problem solved.

Summary:Subversive (or the unterlying client library) analyzes the Subversion configuration directory of your local profile and applies those settings. When you enter a proxy server there, it will be used, no matter if you disable proxy server in the Eclipse settings.

I am not sure if the Subversive developers are aware of this, but I think maybe it should be included in the Subversive FAQ.

Posted: Tue Jul 17, 2007 1:07 pm

by Alexander Gurov

Dear SMLP,

Thank you very much! I think we will discuss this moment together with SVN Kit developers and if this is not a bug include proposed notice into the Subversive FAQ page.

Posted: Wed Jul 18, 2007 2:52 pm

by SMLP

Hi Alexander,

great news, glad if I was able to help a bit.

On more info on this:

I deleted the whole "Subversion" config directory in %APPDATA% and noticed it was re-created when using Subversive. I guess this was done by the client library (JavaHL in this case).

Below is the content of the readme file of this directory, it explains a bit. It also says that in addition to the Subversion config directory, configuration can also be stored in the Windows registry. So this might be an additional place for "hidden" proxy configuration. Argh!

This directory holds run-time configuration information for Subversionclients. The configuration files all share the same syntax, but youshould examine a particular file to learn what configurationdirectives are valid for that file.

The syntax is standard INI format:

- Empty lines, and lines starting with '#', are ignored. The first significant line in a file must be a section header.

- A section starts with a section header, which must start in the first column:

[section-name]

- An option, which must always appear within a section, is a pair (name, value). There are two valid forms for defining an option, both of which must start in the first column:

name: value name = value

Whitespace around the separator (:, =) is optional.

- Section and option names are case-insensitive, but case is preserved.

- An option's value may be broken into several lines. The value continuation lines must start with at least one whitespace. Trailing whitespace in the previous line, the newline character and the leading whitespace in the continuation line is compressed into a single space character.

- All leading and trailing whitespace around a value is trimmed, but the whitespace within a value is preserved, with the exception of whitespace around line continuations, as described above.

- When a value is a boolean, any of the following strings are recognised as truth values (case does not matter):

true false yes no on off 1 0

- When a value is a list, it is comma-separated. Again, the whitespace around each element of the list is trimmed.

- Option values may be expanded within a value by enclosing the option name in parentheses, preceded by a percent sign and followed by an 's':

%(name)s

The expansion is performed recursively and on demand, during svn_option_get. The name is first searched for in the same section, then in the special [DEFAULT] section. If the name is not found, the whole '%(name)s' placeholder is left unchanged.

Any modifications to the configuration data invalidate all previously expanded values, so that the next svn_option_get will take the modifications into account.

The syntax of the configuration files is a subset of the one used byPython's ConfigParser module; see

http://www.python.org/doc/current/lib/module-ConfigParser.html

Configuration data in the Windows registry==========================================

On Windows, configuration data may also be stored in the registry. Thefunctions svn_config_read and svn_config_merge will read from theregistry when passed file names of the form:

REGISTRY:<hive>/path/to/config-key

The REGISTRY: prefix must be in upper case. The <hive> part must beone of:

HKLM for HKEY_LOCAL_MACHINE HKCU for HKEY_CURRENT_USER

The values in config-key represent the options in the [DEFAULT] section.The keys below config-key represent other sections, and their valuesrepresent the options. Only values of type REG_SZ whose name doesn'tstart with a '#' will be used; other values, as well as the keys'default values, will be ignored.

File locations==============

Typically, Subversion uses two config directories, one for site-wideconfiguration,