Hi,

 

I have a problem checking out folders from a subversion repository.

 

We’re using the hudson continuous integration system to build projects that are on a subversion server. We’re currently considering to upgrade to server version 1.7.1, but can’t get it to work together with hudson.

 

Checkout of the repository root works fine, but as soon as I want to check out a subfolder (like “trunk” or “trunk/my_sub_folder”), I get an error message (in hudson’s command line output):

 

>> 

Checking out svn://172.16.2.156/REPO/trunk/my_sub_folder revision: 02-Nov-2011 16:42:29 depth:infinity ignoreExternals: false

ERROR: Failed to check out svn://172.16.2.156/REPO/trunk/my_sub_folder

org.tmatesoft.svn.core.SVNException: svn: URL 'svn://172.16.2.156/REPO/trunk/my_sub_folder' doesn't exist

<< 

 

A look at the server log file hints that there is a problem resolving the subfolder path: it seems to repeat the path, resulting in “/trunk/my_sub_folder/trunk/my_sub_folder”.

 

Log file from subversion server 1.7.1 (the checkout fails):

>> 

2196 2011-11-03T10:34:22.184076Z 172.16.2.108 - REPO open 2 cap=(edit-pipeline svndiff1 absent-entries depth mergeinfo log-revprops) /trunk/my_sub_folder - -

2196 2011-11-03T10:34:22.184076Z 172.16.2.108 - REPO get-latest-rev

2196 2011-11-03T10:34:22.184076Z 172.16.2.108 - REPO get-dated-rev 2011-11-03T10:34:22.201000Z

2196 2011-11-03T10:34:22.184076Z 172.16.2.108 - REPO get-dated-rev 2011-11-03T10:34:22.201000Z

2196 2011-11-03T10:34:22.184076Z 172.16.2.108 - REPO check-path /trunk/my_sub_folder/trunk/my_sub_folder@3

2196 2011-11-03T10:34:22.184076Z 172.16.2.108 - REPO stat /trunk/my_sub_folder@3

<< 

 

Log file from subversion server 1.6.17 (the checkout works):

>> 

2704 2011-11-02T15:45:23.644467Z 172.16.2.108 - REPO open 2 cap=(edit-pipeline svndiff1 absent-entries depth mergeinfo log-revprops) /trunk/my_sub_folder - -

2704 2011-11-02T15:45:23.644467Z 172.16.2.108 - REPO get-latest-rev

2704 2011-11-02T15:45:23.644467Z 172.16.2.108 - REPO get-dated-rev 2011-11-02T15:45:23.000000Z

2704 2011-11-02T15:45:23.644467Z 172.16.2.108 - REPO get-dated-rev 2011-11-02T15:45:23.000000Z

2704 2011-11-02T15:45:23.644467Z 172.16.2.108 - REPO check-path /trunk/my_sub_folder@3

2704 2011-11-02T15:45:23.655483Z 172.16.2.108 - REPO get-dated-rev 2011-11-02T15:45:23.000000Z

2704 2011-11-02T15:45:23.666498Z 172.16.2.108 - REPO checkout-or-export /trunk/my_sub_folder r3 depth=infinity

2704 2011-11-02T15:45:24.845189Z 172.16.2.108 - REPO stat /@3

<< 

 

Using the command-line client 1.7.1, I can check out the same folder from server 1.7.1 without any problem. Server log:

>> 

2196 2011-11-03T10:45:20.731020Z 172.16.2.108 - REPO open 2 cap=(edit-pipeline svndiff1 absent-entries depth mergeinfo log-revprops) /trunk/my_sub_folder SVN/1.7.1 -

2196 2011-11-03T10:45:20.731020Z 172.16.2.108 - REPO get-latest-rev

2196 2011-11-03T10:45:20.731020Z 172.16.2.108 - REPO reparent /trunk/my_sub_folder

2196 2011-11-03T10:45:20.731020Z 172.16.2.108 - REPO check-path /trunk/my_sub_folder@3

2196 2011-11-03T10:45:20.791107Z 172.16.2.108 - REPO open 2 cap=(edit-pipeline svndiff1 absent-entries depth mergeinfo log-revprops) /trunk/my_sub_folder SVN/1.7.1 -

2196 2011-11-03T10:45:20.791107Z 172.16.2.108 - REPO get-latest-rev

2196 2011-11-03T10:45:20.791107Z 172.16.2.108 - REPO checkout-or-export /trunk/my_sub_folder r3

<< 

 

In the last example, I can see that the server knows the client’s version (“SVN/1.7.1”), while in the first two examples, there is just a “-“ instead of the version number.

 

Is this an issue with the client failing to report its version properly, or is the server supposed to work even though it doesn’t know the client’s version?

 

The server is running on Windows XP 32-bit, the client on Windows 7 64-bit. The Hudson client has the latest Hudson subversion plugin, which uses SVNKit 1.3.5.

 

Best,

Matthias.