Отвратные привратности злодейки, или два (svn + apache) против одного (меня)

Глядя как люди переносят свои cvs-репозитории на Subversion и дают к ним доступ через http, я стал задаваться вопросом, зачем в пути к репозиториям добавляют префиксы типа /svn, /repos и так далее, ведь большинство заводит новый домен с именем svn (например svn.apache.org), т.е. по логике и так все можно разрулить, и вместо того же http://svn.apache.org/repos/asf/portals/ использовать просто http://svn.apache.org/portals/
Ан нет, не тут то было.

Довелось и мне настраивать доступ с svn через apache. Не буду рассказывать о том, как
невозможно найти скомпилированный под Win32 mod_dav_svn.so, который был бы бинарно совместим с apache 2.2.0, как и не буду рассказывать о том, что каталог с репозиториями не должен располагаться в папке, куда указывает DocumentRoot хоста (как минимум они должны быть рядом), на котором настраивается svn. Скажу лишь что после долгого ГУГЛения удалось выяснить, что использование <Location /> в настройках apache приводит к странному поведению mod_dav_svn, когда он напрочь отказывается добавлять новые ресурсы в репозиторий и кидается ошибкой

svn: Commit failed (details follow): svn: PROPFIND request failed on '/repository-name/trunk/new-file.xml' svn: Could not open the requested <acronym title="Subversion">SVN</acronym> filesystem

а в apache error log пишет

(20014)Error string not specified yet: Can't open file '/full-path-to-repos/repos/error/format': The system cannot find the path specified. Could not fetch resource information. [500, #0] Could not open the requested <acronym title="Subversion">SVN</acronym> filesystem [500, #720003] Could not open the requested <acronym title="Subversion">SVN</acronym> filesystem [500, #720003]

А вот простая замена <Location /> на какой-нибудь <Location /repos> приводит все в полный порядок.

P.S. А ведь похоже и остальные не дураки.

 

4 replies


  1. Спасибо огромное! Мучался с тем же глюком всю ночь, потом наткнулся на эту запись….

    привет из далекой германии ;-)


  2. >Не буду рассказывать о том, как невозможно найти скомпилированный под Win32 mod_dav_svn.so

    а можно рассказать? ;) пересобирал сам?


  3. Нет. Забил и откатился до 2.0


  4. Тоже наступил на эти же грабли (после переезда на другой сервер).

    Потом нашел в комментариях в конфигах (сработало как положено!):

    # Do not set DocumentRoot. It is not needed here and just causes trouble.
    #
    # Map the error documents back to their defaults.
    # Otherwise mod_dav_svn tries to find a “error” repository.
    #
    ErrorDocument 400 default
    ErrorDocument 401 default
    ErrorDocument 403 default
    ErrorDocument 404 default
    ErrorDocument 405 default
    ErrorDocument 408 default
    ErrorDocument 410 default
    ErrorDocument 411 default
    ErrorDocument 412 default
    ErrorDocument 413 default
    ErrorDocument 414 default
    ErrorDocument 415 default
    ErrorDocument 500 default
    ErrorDocument 501 default
    ErrorDocument 502 default
    ErrorDocument 503 default

    Пост, конечно, старый, но я нагуглил - может еще кто нагуглит :)

Leave a reply