Skonfigurowałem subversion i apache na moim serwerze.
Jeśli przeglądam go za pomocą przeglądarki internetowej, działa dobrze ( http://svn.host.com/reposname ). Jeśli jednak dokonam kasy na moim komputerze, pojawia się następujący błąd:
Command: Checkout from http://svn.host.com/reposname, revision HEAD, Fully recursive, Externals included
Error: Repository moved permanently to 'http://svn.host.com/reposname/'; please relocate
Sprawdziłem dziennik błędów Apache, ale nic nie mówi. (robi to teraz - patrz edycja)
Moje repozytoria są przechowywane pod: / var / www / svn / repos /
Moja strona jest przechowywana pod: / var / www / vhosts / x / ...
Oto plik konf dla subdomeny:
<Location />
DAV svn
SVNParentPath /var/www/svn/repos/
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/www/svn/auth/svn.htpasswd
Require valid-user
</Location>
Uwierzytelnianie działa poprawnie.
Czy ktoś wie, co może być przyczyną?
-- Edytować
Ponownie uruchomiłem apache (ponownie) i spróbowałem jeszcze raz, a teraz wyświetla mi komunikat o błędzie, ale to naprawdę nie pomaga. Czy ktoś ma pomysł, co to znaczy?
[Wed Mar 31 23:41:55 2010] [error] [client my.ip.he.re] Could not fetch resource information. [403, #0]
[Wed Mar 31 23:41:55 2010] [error] [client my.ip.he.re] (2)No such file or directory: The URI does not contain the name of a repository. [403, #190001]
- Edycja 2
Jeśli to zrobię svn info
, nie da to nic użytecznego:
[root@server domain.com]# svn info http://svn.domain.com/repos/
Username: username
Password for 'username':
svn: Repository moved permanently to 'http://svn.domain.com/repos/'; please relocate
Próbowałem także zrobić lokalną kasę ( svn checkout file:///var/www/svn/repos/reposname
) i to działa dobrze (również dodawanie / zatwierdzanie działa dobrze). Wygląda więc na to, że ma to coś wspólnego z apache.
Niektóre inne informacje:
- Korzystam z CentOs 5.3
- Plesk 9.3
- Subversion, wersja 1.6.9 (r901367)
- Edycja 3
Próbowałem przenieść repozytoria, ale to nie miało znaczenia.
selinux jest wyłączony, więc to też nie jest.
źródło
Options +indexes
powinno być nic przydatnego w lokalizacji svn.Odpowiedzi:
Miałem to niedawno ... ale okazało się, że zapomniałem adresu URL :)
Jedną rzeczą, którą musisz zrobić, to upewnić się, że Twoja lokalizacja svn nie pokrywa się z żadnymi witrynami obsługiwanymi przez apache. tzn. jeśli ustawisz DocumentRoot na / www, a swoją lokalizację svn na / www / svn ... to masz kłopoty - Apache nie będzie wiedział, z czym ma być obsługiwany (tj. specjalne programy obsługi svn lub prosty moduł obsługi http).
Zobacz wpis FAQ na ten temat .
źródło
Alias svn /repositories
A następnie wszystko skonfigurowałem<Location /svn/ >
. Problem był dokładnie taki, jak w linku FAQ, choć w tajemniczy sposób działał idealnie przez miesiąc, a następnie zatrzymał się w środowe popołudnie przy herbacie. Jeśli twoje repozytorium znajduje się w „/”, wówczas nakładasz się na dyrektywę DocumentRoot.Spróbuj sprawdzić
http://svn.host.com/reposname/
(zwróć uwagę na ukośnik).źródło
Sprawdź tę stronę: http://www.rkrishardy.com/2009/12/subversion-fix-svn-copy-causes-repository-moved-permanentl/
Prawdopodobnie alias wskazuje to samo miejsce, co skonfigurowany, to dav_svn.mod, a między apache i dav_svn istnieje warunek wyścigu podczas uzyskiwania dostępu do repo.
Lepiej to wyjaśniono w dostarczonym artykule
W dav_svn.conf:
W apache_site.conf
źródło
Mam konfigurację vhost z moim repozytorium na
svn.mydomain.com/sites/
moim vhost miał blok DocumentRoot i Location. Usunięcie katalogu głównego rozwiązało ten problem.źródło
Wystąpił ten błąd, gdy przez pomyłkę umieściłem moje repozytorium pod drzewem HTML obsługiwanym przez Apache na mojej maszynie FC14 z instalacją subversion i apache opartą na RPM.
SVNParentPath (w /etc/httpd/conf.d/subversion.conf) powinien wskazywać na katalog poza DocumentRoot.
Po przeniesieniu repozytorium problem zniknął.
Mam nadzieję że to pomoże.
źródło
Wiem, że to stare, ale znalazłem je w Google, ponieważ miałem ten sam problem. Upewnij się, że port 7080 nie jest blokowany przez zaporę komputera ani serwera
źródło
Wygląda na to, że nie robisz
svn checkout
, ale raczejsvn update
w istniejącym repozytorium (?).Jeśli tak, zrób to:
svn switch --relocate http://svn.host.com/reponame
źródło
Przeprowadziłeś się na stałe? Czy możesz coś takiego jak HTTPFox lub coś innego i sprawdzić, czy Apache podaje odpowiedni kod statusu dla twojego repozytorium (powinien być
200/OK
). Uważam, że kod stanu301
odpowiada adresowi URL, który został „przeniesiony na stałe” i brzmi jak to, do którego odnosi się klient svn.źródło
http://svn.server.com/repos
), to działa świetnie, otrzymuję „repos - Wersja 0: /” i wszystko. Problem występuje tylko wtedy, gdy dokonam kasy.Może trochę późno w rozmowie, ale widzę to podczas używania aliasu w konfiguracji apache do radzenia sobie z końcowym „/”: Alias / svn / path / to / svn /
źródło
Musisz także upewnić się, że żadna dyrektywa Alias nie odwzorowuje lokalizacji repozytoriów svn. Miałem to niedawno, kiedy miałem
gdzie alias i dyrektywa lokalizacji dotyczą tej samej ścieżki.
źródło
Po prostu miałem podobny problem nie podczas WYKONYWANIA, ale kiedy wykonano polecenie.
Powód? ten folder „obj \ Debug \ TempPE”, z jakiegoś dziwnego powodu, że folder „TempPE” nie jest w stanie zatwierdzić go do repozytorium
Rozwiązanie? ... ZATWIERDZAJ wszystkie pozostałe foldery projektu jeden po drugim i usuń tę lokalizację z serwera SVN
źródło