Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-2485

Authz repository matching is both case sensitive and case insensitive ( both Windows & Linux )

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Duplicate
    • 1.3.x
    • 2.0-consider
    • libsvn_subr
    • None
    • Windows XP

    Description

      Environment: Subversion 1.3 on Windows (XP).
                   mod_authz_svn on apache 2.0.55
                   
      Problem description:
      
      The original problem is that repositories on a Windows Subversion 1.3 server are
      not always accessible anymore from working copies with a different cased url.
      [ Thread on users list is available at:
      http://svn.haxx.se/users/archive-2006-01/0750.shtml ]
      
      Example environment: 
      - a repository in c:\svn\repos
      - a working copy of that repository pointing to http://localhost/svn/REPOS
      - an authz access file containing:
      
      [/]
      * = r
      
      [repos:/trunk]
      * = rw
      
      
      When committing a changed file from the working copy, the commit will fail with
      error:
      Error: Commit failed (details follow):  
      Error: MKACTIVITY of '/svn/REPOS/!svn/act/de187878-21c7-f043-8c80-474dfd67c66d':
      403   
      Error: Forbidden (http://localhost)  
      
      For unix users this might seem logical, and I'm pretty sure this is expected
      behaviour, but:
      
      1. A subversion 1.2.3 server handled this without problems. Which makes this an
      undocumented change in behaviour.
      
      2. It turns out that the repository matching functions in authz, all use the
      find_option function in libsvn_subr/config.c, which is case insensitive! 
      
      This leads to another type of unexpected behaviour: On linux, if you have two
      repositories 'test' and 'TEST', it is not possible to specify different authz
      rules for those, because the rules you define for repository 'test' will also
      match for repository 'TEST'.
         
      I discussed this with David Anderson on irc, and the current suggestion is the
      make find_option case sensitive for matching repository names. 
      This means that people on Windows will have to stick to exact cased letters.
      Since URI's are case sensitive as well that seems to be the most logical choice.
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              lgo Lieven Govaerts
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: