problem with paths with spaces with ubuntu12.04 client with ubuntu13.10 server
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
subversion (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Note that it is related but not the same bug as https:/
Bug found in:
libapache2-mod-svn 1.7.9-1+nmu6ubuntu3
with 2.4.6-2ubuntu2.1
on ubuntu 13.10 amd64.
Committing a change on a file that has space characters (or other characters that need encoded in a URI) in its path with a subversion client prior to 1.7 (so typically ubuntu 12.04's 1.6.17) fails with this type of error:
File not found: transaction '91472-225x', path '/a%20b'
That hit me when upgrading a subversion repository from ubuntu 10.04 to ubuntu 13.10 after which no ubuntu 12.04 user could commit anything with a space in a file path. It is possible that this bug also affects 14.04 (svn 1.8.8 with apache 2.4.7), but one can't tell as bug 1284641 causes the commit to fail before we reach that point.
To reproduce:
On a ubuntu 13.10 server, run (as root):
apt-get install apache2 subversion libapache2-mod-svn
a2enmod dav_svn
svnadmin create /srv/svn
chown -R www-data: /srv/svn
cat > /etc/apache2/
<Location /svn>
DAV svn
SVNPath /srv/svn
</Location>
EOF
service apache2 restart
On a 12.04 client:
svn co http://
cd test
mkdir -p 'A B/C'
echo test > 'A B/C/x'
svn add 'A B'
svn ci -m m1
echo test >> 'A B/C/x'
svn ci -m m2
That second commit will fail with something like:
File not found: transaction '2-225x', path '/A%20B/C/x'
Looking at the network traffic between client and server, we see a few HTTP requests and then:
REQUEST:
CHECKOUT /!svn/ver/
RESPONSE:
HTTP/1.1 201 Created\r
[...]
Location: http://
(see how the %20 became %2520 (encoded again))
Followed by:
REQUEST:
PUT /!svn/wrk/
RESPONSE:
HTTP/1.1 404 Not Found\r
Newer subversion clients are not affected because they use a different protocol, unless you add
SVNAdvertiseV2P
to the dav_svn configuration.
That bug was introduced by a change in apache, by the fix to https:/
Please find a patch attached. That patch against 1.7.9 removes the encoding done by dav_svn.
Though I've done a fair amount of testing with it, I don't know enough about the apache/dav/svn architecture to guarantee that it won't break anything.
The attachment "potential fix for the issue" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.
[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]