Import plików do SVN i komunikat „Error 301 Moved Permanently”

Napotkałem ostatnio interesujący problem: po przeniesieniu repozytorium SVN i poprawnym (wydawałoby się) skonfigurowaniu Apache wraz z modułem mod_dav do jego obsługi po protokole HTTPS, każda próba importu plików do nowego repozytorium kończyła się następującym komunikatem

svn: PROPFIND of '/app': 301 Moved Permanently (/app/)

(lub bardzo podobnym). Jak widać, nowy url różni się od poprzedniego dodanym na końcu ukośnikiem.

Konfiguracja Apache do obsługi repozytorium SVN była standardowa, czyli:

<Location />
    DAV svn
    SVNParentPath /var/www/vhosts/svn
    AuthType Basic
    AuthName "http"
    AuthUserFile /etc/http.users
    Require valid-user
</Location>

SVNParentPath wskazuje na katalog, w którym znajdują się repozytoria różnych projektów. Sprawcą zamieszania okazało się umieszczenie repozytoriów SVN w tym samym katalogu, na który wskazywała dyrektywa DocumentRoot wirtualnego serwera. W ten sposób powstawał konflikt między mod_dav, a zwyczajną obsługą katalogów i plików przez Apache.

Gdy repozytorium SVN zostało umieszczone w innym katalogu, tym razem nie znajdującym się w głównym katalogu wirtualnego hosta, problem zniknął.

Napisz komentarz