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

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



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


      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
      * = rw
      When committing a changed file from the working copy, the commit will fail with
      Error: Commit failed (details follow):  
      Error: MKACTIVITY of '/svn/REPOS/!svn/act/de187878-21c7-f043-8c80-474dfd67c66d':
      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.


        Issue Links



              Unassigned Unassigned
              lgo Lieven Govaerts
              0 Vote for this issue
              0 Start watching this issue