Issue #444 resolved

Using space or "!" in SVN resource name does not work.

Anonymous created an issue

We have migrated our SVN from just behind Apache to SCM. In our old SVN repository it was possible to checkin resources that had spaces or "!" in their name. Now this is not working anymore. SCM says it cannot find the resource if we want to display or update it.

If you browse the repository over the SCM webinterface the resource is still displayed, but it cannot be opened (file not found). I think the spaces are not correctly encoded in the browsing page and they are not correctly decoded during checking.

e.g.: /trunk/myproject/this has spaces.txt

Regards,

Alexander

Comments (22)

  1. Alexander Grahl

    Hi, sorry for the delay. I know created a login :-)

    1. Old system was a SVN with Apache SVN configured
    2. There I had a resource checked in with the following path "/trunk/!!!process clean!!!.bat"
    3. We migrated all our repositories to SCM Manager 3.1. Copy SVN reposietories to SCM repository folder 3.2. Call Import SVN in the Manager
    4. Checked project out with Eclipse to new project (all resources are checked out)
    5. Make a change to resource "!!!process clean!!!.bat"
    6. Make synchronize (change is detected)
    7. Try to check in resource

    Error message from Eclipse SVN client:

    org.apache.subversion.javahl.ClientException: RA layer request failed
    svn: Commit failed (details follow):
    svn: Server sent unexpected return value (400 Bad Request) in response to CHECKOUT request for '/scm/svn/test/!svn/ver/366/trunk/processlayer/src/test/script/!!process%20clean!!.bat'
    
    org.apache.subversion.javahl.ClientException: RA layer request failed
    svn: Commit failed (details follow):
    svn: Server sent unexpected return value (400 Bad Request) in response to CHECKOUT request for '/scm/svn/test/!svn/ver/366/trunk/processlayer/src/test/script/!!process%20clean!!.bat'
    

    Console log output:

    commit -m "" D:/development/workspaces/processlayer/processlayer_svn_test/src/test/script/!!process clean!!.bat
        Sending        D:/development/workspaces/processlayer/processlayer_svn_test/src/test/script/!!process clean!!.bat
        RA layer request failed
    svn: Commit failed (details follow):
    svn: Server sent unexpected return value (400 Bad Request) in response to CHECKOUT request for '/scm/svn/test/!svn/ver/366/trunk/processlayer/src/test/script/!!process%20clean!!.bat'
    

    Hope that helps.

    Regards,

    Alexander

  2. Sebastian Sdorra repo owner

    We can not reproduce this issue. Could you please post the content of the following files of your subversion repository:

    • format
    • db/fs-type
    • db/format

    Could you please try the following:

    • create a dump of your repository "svnadmin dump path/to/your/repository > repo.dump"
    • create a new svn repository with scm-manager
    • load the dump in the new created repository "svnadmin load path/to/new/repository < repo.dump"
    • restart scm-manager (to avoid caching problems)
    • try to reproduce the issue again
  3. Ruben Tieland

    Hi,

    I am having the same problem.

    Created new repository with scm manager. Checked out to local desktop folder Test. Created text file "New Text Document.txt" in Test folder. Tryd to commit the change and got the following error using TortoiseSVN:

    Commit C:\Users\Ruben\Desktop\Test\New Text Document.txt Commit failed (details follow): Server sent unexpected return value (400 Bad Request) in response to PROPFIND request for '/scm/svn/Test/!svn/wrk/3dfb91e8-2426-f843-95db-4c16295de9a1/New%20Text%20Document.txt' Server sent unexpected return value (400 Bad Request) in response to PROPFIND request for 'http://ods001.mn.roc.lan/scm/svn/Test/New%20Text%20Document.txt'

  4. Sebastian Sdorra repo owner

    Sorry, but i can't reproduce this issue. It is possible that you post a step by step tutorial to reproduce this problem (i would prefer the svn cli client)?

  5. Alexander Grahl

    Hi,

    I tried it again and did the following steps:

    1. Created new SVN repository via SCM "test_scm"
    2. Used Eclipse "tigris subversion client" to create new trunk folder
    3. Created project and connected to svn repository
    4. Created file "my test file.txt" in project
    5. Synchronize with repository (changes are detected)
    6. Try to commit new file => Error
    org.tigris.subversion.javahl.ClientException: RA layer request failed
    svn: Commit failed (details follow):
    svn: Server sent unexpected return value (400 Bad Request) in response to PROPFIND request for '/scm/svn/test_scm/!svn/wrk/f2e8bfcc-e231-0e42-8e2c-731e6810eda2/trunk/test_scm/my%20test%20file.txt'
    svn: Server sent unexpected return value (400 Bad Request) in response to PROPFIND request for '/scm/svn/test_scm/trunk/test_scm/my%20test%20file.txt'
    
    org.tigris.subversion.javahl.ClientException: RA layer request failed
    svn: Commit failed (details follow):
    svn: Server sent unexpected return value (400 Bad Request) in response to PROPFIND request for '/scm/svn/test_scm/!svn/wrk/f2e8bfcc-e231-0e42-8e2c-731e6810eda2/trunk/test_scm/my%20test%20file.txt'
    svn: Server sent unexpected return value (400 Bad Request) in response to PROPFIND request for '/scm/svn/test_scm/trunk/test_scm/my%20test%20file.txt'
    
    1. Use TortoiseSVN Client to check in the file => error
    D:\development\workspaces\scm\test_scm\my test file.txt
    Commit failed (details follow):
    Server sent unexpected return value (400 Bad Request) in response to PROPFIND
     request for
     '/scm/svn/test_scm/!svn/wrk/1826cf12-926b-fd46-a9ca-578220e12873/trunk/test_scm/my%20test%20file.txt'
    Server sent unexpected return value (400 Bad Request) in response to PROPFIND
     request for
     'https://myhost/scm/svn/test_scm/trunk/test_scm/my%20test%20file.txt'
    

    As mentioned we have the SCM Manager behind an Apache server (pass through proxy). Our server OS is Windows.

    svn client -> https -> apache -> http -> scm

    Hope that helps

    Alexander

  6. Ruben Tieland

    Steps to reproduce.

    Base setup:

    Windows Server 2008 R2 Enterprise

    IIS 7.5

    Web Platform Installer 4.6, Custom Feed: http://www.helicontech.com/zoo/feed.xml

    Installed SCM-Manager 1.22 with WebPI at the “Default Web Site”

    The WebPI also installs:

    Helicon Zoo 3.0.98.457

    Jetty 7.6.7.v20120910 (Java 7 Update 11, Java SE Development kit 7 Update 11)

    Upgraded SCM-Manager 1.22 to 1.33 by replacing the war file.

    Created new svn repository “Test” with scm manager.

    Checked out to local desktop folder Test.

    Created text file "New Text Document.txt" in Test folder.

    Try to commit new file => Error

    C:\Users\Ruben\Desktop\Test>svn commit -m "test"

    Adding New Text Document.txt

    svn: E175002: Commit failed (details follow):

    svn: E175002: Server sent unexpected return value (400 Bad Request) in response to PROPFIND request for '/scm/svn/Test/!svn/wrk/f855a96a-0d65-c64f-a42f-1a70f4c3e530/New%20Text%20Document.txt'

    svn: E175002: Server sent unexpected return value (400 Bad Request) in response to PROPFIND request for 'http://ods001.mn.roc.lan/scm/svn/Test/New%20Text%20Docu ment.txt'

  7. Sebastian Sdorra repo owner

    I don't know the helicontech installations, but by default the jetty should be available on port 8080. If this is not the case download the standalone version and start bin/scm-server.bat. I don't know the scm home path of the helicontech installation, so the scm-manager standalone instance could be empty.

  8. Ruben Tieland

    I figured out how to start it without IIS/Zoo by watching at the Zoo configuration.

    I can start It by using the command prompt and entering the following lines:

    SET APPL_PHYSICAL_PATH=D:/inetpub/wwwroot/scm

    SET WAR_EXTRACT_PATH=% APPL_PHYSICAL_PATH%

    SET WAR_FILE=scm-webapp.war

    SCM_HOME=% APPL_PHYSICAL_PATH%/.scm

    CD C:\Jetty7

    %JDK_HOME%\bin\java.exe -Xmn64m -Xms128m -Xmx256m -Djetty.port=8080 -jar start.jar --ini=%SystemDrive%\Zoo\Workers\jetty\zoo-war\start.ini

    Now the scm-manager is started on Port 8080. I tried to do the same commit and it succeeded.

    So it looks like it is a problem with IIS / Zoo, I will contact helicontech for assistance and refer to this issue for problem solving.

    If you don’t mind please keep the issue open.

  9. Alexander Grahl

    I have now tested without the proxy. There it works and I am able to view the file via the web brwoser (this is also not possible if it goes through the proxy). So it seems that all request regarding files that have spaces in the name are broken, when SCM is behind a proxy.

    Until now I have no idea why this is broken when a proxy is in between.

  10. Log in to comment