2014-01-23 7 views
0

Я использую Apache (и mod_dav_svn) для доступа к SVN-репозиториям на моем сервере через https. Проверка репозиториев и добавление, удаление или редактирование файлов работает безупречно, но когда я переименую или копирую файл, сервер возвращает 400 Bad Request при фиксации. Конфигурацияsvn COPY results in 400 Bad Request

Apache:

<VirtualHost *:443> 
    ServerName *** 

    SSLEngine on 
    SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem 
    SSLCertificateFile /etc/ssl/certs/***.crt 
    SSLCertificateKeyFile /etc/ssl/private/***.key 

    <Location /> 
      DAV svn 
      SVNParentPath /var/local/svn 
      SVNListParentPath on 
      Order deny,allow 
      Allow from all 
    </Location> 
    <LocationMatch /.+> 
      AuthzSVNAccessFile /var/local/conf/access.authz 
      AuthType Basic 
      AuthName "Subversion repository" 
      AuthUserFile /var/local/conf/.htpasswd 
      require valid-user 
    </LocationMatch> 
</VirtualHost> 

Точное сообщение об ошибке:

svn: E175002: Commit failed (details follow): 
svn: E175002: COPY of /***/!svn/bc/94/***: 400 Bad Request (https://***) 

SVN сервер:

$ svnadmin --version 
svnadmin, version 1.6.17 (r1128011) 

Клиент SVN используется мой IDE (IntelliJ Idea 11):

Version: 1.7 
Format: 29 

К сожалению, я не мог найти никаких намеков на проблему в журнале ошибок apache. Любые предложения по устранению этой проблемы?

EDIT: Я заметил, что изменение конфигурации в

<LocationMatch /.+> 
      DAV svn 
      AuthzSVNAccessFile /var/local/conf/access.authz 
      AuthType Basic 
      AuthName "Subversion repository" 
      AuthUserFile /var/local/conf/.htpasswd 
      require valid-user 
    </LocationMatch> 

исправляет проблему и позволяет мне использовать SVN копию, но когда я пытаюсь обновить свою локальную рабочую директорию теперь, я получаю эту ошибку:

svn: E190001: Unusable URI: it does not refer to this repository 
svn: E175002: REPORT of '/.+/***/!svn/vcc/default': 500 Internal Server Error (***) 

Ошибка в журнале ошибок апача:

[Thu Jan 23 18:00:18 2014] [error] [client 94.222.125.77] Could not parse 'src-path' URL. [500, #190001] 
[Thu Jan 23 18:00:18 2014] [error] [client 94.222.125.77] Unusable URI: it does not refer to this repository [500, #190001] 
+0

Какую версию Subversion на клиенте и сервере? –

+0

$ svnadmin --version svnadmin, версия 1.6.17 (r1128011) Рабочая копия на моем ноутбуке на формат 29 (выше формат не поддерживается моим IDE (IntelliJ Idea 11) пока) – Dero

+0

Вы действительно не должны используйте LocationMatch. Просто поместите все в

ответ

0

Я не су о первой проблеме.

Но после того, как вы изменили конфигурацию, ваша вторая проблема вызвана LocationMatch с директивой DAV svn, поскольку это приводит к тому, что каждый путь вычисляется как корень репозитория.

Эта конфигурация должна работать:

<Location /> 
      DAV svn 
      SVNParentPath /var/local/svn 
      SVNListParentPath on 
      Order deny,allow 
      Allow from all 
      AuthzSVNAccessFile /var/local/conf/access.authz 
      AuthType Basic 
      AuthName "Subversion repository" 
      AuthUserFile /var/local/conf/.htpasswd 
      require valid-user 
</Location> 
+0

Я использовал эту конфигурацию некоторое время назад. К сожалению, похоже, что ошибка в mod_dav_svn не позволяет SVNListParentPath работать с AuthzSVNAccessFile. Когда я использую приведенную выше конфигурацию и получаю доступ к своему серверу из своего браузера, я больше не вижу список доступных репозиториев (HTTP Error 443 Forbidden) – Dero

+0

Мы исправили эту ошибку с 1.7.0, http: //subversion.tigris. орг/вопросы/show_bug.cgi? ID = 2753. Мы больше не обновляем 1.6.x, поэтому вы, вероятно, должны запускать 1.7.x или 1.8.x на стороне сервера. –

+0

Добавлен репозиторий Wandisco, обновленный до версии 1.8.5, и он сработал. Большое спасибо :) – Dero

 Смежные вопросы

  • Нет связанных вопросов^_^