2009-05-26 18 views
21

Sprawdzałem repozytorium (na przykład foo) od SVN podczas wykonywania innych commitów/aktualizacji. Mój serwer umarł i zostałem z niekompletną kasą. W porządku. Problem polega na tym, że wracam, aby uzyskać dostęp do repozytorium foo, ale nie jestem w stanie. To po prostu wisi na zawsze.SVN "Żądanie PROPFIND nie powiodło się ..."

Poszedłem więc do http://subversion.apache.org/faq.html#bdb-recovery i uruchomiłem svnadmin recover. Otrzymałem błąd, więc musiałem użyć db_recover, a polecenie powiedziało, że zakończyło się pomyślnie.

Teraz, gdy próbuję uzyskać dostęp do repozytorium, otrzymuję:

svn: PROPFIND request failed on '/foo' 
svn: PROPFIND of '/foo': 500 Internal Server Error (https://svn.foobar.com) 

Także, jeśli I przejdź do https://svn.foobar.com/foo widzę:

<D:error> 
<C:error/> 
<m:human-readable errcode="160029"> 
Could not open the requested SVN filesystem 
</m:human-readable> 
</D:error> 

Ktoś ma jakieś przemyślenia?

Uwaga: Wszystkie pozostałe repozytoria działają. To tylko ten.

+0

Jaki był błąd z odzyskania svnadmin? – thekbb

Odpowiedz

3

Czy uruchomiłeś program "svnadmin recover" jako użytkownik zwykle używający repozytorium (np. Konto apache)?

Jeśli nie, powodem może być to, że niektóre pliki są obecnie własnością użytkownika, który uruchamia program "svnadmin recover", pozostawiając konto apache bez uprawnień do zmiany plików repozytorium.

+1

W takim przypadku prosty problem z usunięciem apache.apache -R/path/to/repos powinien rozwiązać problem ... – stephendl

1

Mam ten PROPFIND błąd, ponieważ wysiadł prąd i zapomniałem o ponowne uruchomienie svnserve i instancje Apache =)

0

W moim przypadku, potrzebowałem innego protokołu:

svn co svn+ssh://svn.xyz.com/directory 
0

Jeśli konkretny komunikat o błędzie to "permamentowy koniec pliku" ... error_log httpd wykazał, że:

[error] PHP Parse error: syntax error, unexpected T_STRING in /var/www/repos/... 

, ale nie ma błędu składni.

Wydaje się pliki .php są interpretowane zamiast być traktowane jako tekst - oczywiście związane z konfiguracją typów MIME ...

Cóż, odpowiedź jest prosta:

AddType text/plain .php 

Wystarczy dodać, że do plik konfiguracyjny wirtualnego hosta i apache2 przestaną interpretować PHP w tym repozytorium. Source

1

Jeśli konfigurujesz serwer SVN przez HTTP (S), może to być serwer Apache, który nie rozumie PROPFIND.

W moim przypadku to się stało, kiedy setup a 'Lokalizacja' w config Apache httpd w/o, określając ją jako realizacja WebDAV SVN (mod SVN jest rozszerzeniem na WebDAV):

<Location /svn> 
     SVNParentPath /data/scm/repositories/ 
     SVNPathAuthz off 
     AuthType Basic 
     AuthName "xxxxx" 
     AuthBasicProvider ldap 
     AuthLDAPURL ldap://xxx.yy:389/DC=aaaa,DC=bbbb?sAMAccountName?sub 
     Require valid-user 
    </Location> 

Zamiast tego:

<Location /svn> 
    DAV svn 
    SVNParentPath /data/scm/repositories/ 
    SVNPathAuthz off 
    AuthType Basic 
    AuthName "xxxxx" 
    AuthBasicProvider ldap 
    AuthLDAPURL ldap://xxx.yy:389/DC=aaaa,DC=bbbb?sAMAccountName?sub 
    Require valid-user 
</Location> 

Wydaje się logiczny błąd po znalezieniu go, ale zajęło mi trochę czasu, aby znaleźć błąd ...

1

Czasami różne zainstalowane wersje Java mogą spowodować, że wtyczka Eclipse SVN (mój przypadek Subversive 1.7) nie będzie działać.

Użyłem JVM 1.6, ale moja ścieżka środowiskowa wskazywała na nowszą wersję (z powodu zainstalowania Oracle Java Web Start lub czegoś podobnego).

Więc powróciłem do starej wersji Java 1.6 i działało.

0

W moim przypadku mógłbym rozwiązać ten problem, zmieniając wartość "commit to" z "https://localserver/svn/project" na "file: /// F:/Repositories/project".

Uruchomienie zakończyło się niepowodzeniem po zmianie portu HTTPS, ponieważ zainstalowałem certyfikat w moim lokalnym serwerze IIS i jest on w konflikcie z serwerem SVN Apache.

Powiązane problemy