2013-05-21 9 views
5

background: DynDNS zaczęło już wymagać logowania raz w miesiącu, aby zachować aktywne konta (poprzednio musiałeś odnawiać swój adres IP raz w miesiącu). Jestem pewien, że prędzej czy później zapomnę to zrobić i stracę konto.Jak mogę przekierować adresy URL svn do innej domeny?

Używam mysvn.dyndns.org do uzyskiwania dostępu do mojego repozytorium subversion na serwerze, który może (jak na razie) również zostać osiągnięty przez svn.mydomain.com. Niestety, większość projektów odnosi się również do zewnętrznych, które są również zlokalizowane na mysvn.dyndns.org i naprawdę nie chcę przejść przez wszystkie projekty (> 100) i zmienić zewnętrzne, ponieważ to prawdopodobnie zajmie kilka godzin i jest raczej podatne na błędy .

Czy istnieje sposób na skonfigurowanie systemu Windows lub klientów Subversion/TortoiseSVN do przekierowania jednej domeny do drugiej?

np

https://mysvn.dyndns.org/svn/blablub

powinien zostać przekierowany do

https://svn.mydomain.com/svn/blablub

wiem, że mogę dodać wpis do hostów przekierować do adresu IP, ale wolałbym przekierowanie do nazwy domeny.

+0

jaka wersja klienta i serwera svn? – explunit

+0

To nie odpowiada na twoje konkretne pytanie, ale czy mogę zaproponować alternatywne podejście? Zakładając, że używasz svn 1.5 lub wyższej, która obsługuje [względne adresy URL dla zewnętrznych] (http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html), postępując zgodnie z jednym z podejść [tutaj ] (http://stackoverflow.com/questions/204616/how-to-migrate-all-urls-in-svnexternals-properties-across--repositoryory) w celu zmiany wszystkich zewnętrznych na względne rozwiązałoby bardziej podstawowy problem. – explunit

+0

@explunit: To interesujące podejście. Niestety nie będzie działać dla wszystkich projektów, ponieważ nie wszystkie są przechowywane w tym samym repozytorium co ich zewnętrzne. Ale większość jest. Dodaj to jako odpowiedź, możesz otrzymać nagrodę, nawet jeśli nie odpowiada na pytanie, tak jak to ujęłam. – dummzeuch

Odpowiedz

0

Najwyraźniej nie ma rozwiązania tak łatwego, jak myślałem. W końcu napisałem mały program Delphi oparty na kodzie źródłowym Version Insight, który zmienia zewnętrzne dla wszystkich projektów sprawdzonych w podkatalogach danego katalogu i zatwierdza te zmiany. Następnie użyłem polecenia przesiedlenia svn, aby przenieść projekty samodzielnie.

@rem calls svn relocate for all directories 
@echo off 

for /d %%i in (*) do call :HandleDir %%i 
pause 
goto :eof 

:HandleDir 
echo *** handling dir %1 

svn relocate --ignore-externals https://mysvn.dyndns.org/svn/ https://svn.mydomain.com/svn/ %1 
goto :eof 
5

You (naprawdę) zapytał 2 Powiązany pytania:

  • Mogę przekierowują somename.domain.com do anothername.somedomain.com?
  • Czy klienci SVN mogą używać starej nazwy, ale intecat z nowym hostem?

i krótkie odpowiedzi będą

  • Tak
  • Brak

Dłuższe wersje

przekierowania starą nazwę hosta na nowy trzeba i można korzystać z co najmniej dwóch wariacje (z takim samym wynikiem końcowym)

  • Na poziomie DNS i rekord CNAME, który będzie alias nową nazwę dla nowego:

somename.domain.com. IN CNAME anothername.somedomain.com

na wniosek somename odpowie z danymi z anothername

  • w Konfiguracja Apache'a dla hosta z nazwą lokacji Możesz dodać przekierowanie do innej nazwy Apache's

Ale: to będzie działać tylko na poziomie przeglądarek męska - gdy spróbujesz użyć tego przekierowany lokalizację jako cel dla polecenia żadnego Subversion, otrzymasz błąd „Repozytorium przeniesione należy przeprowadzić” i koniecznością Przeprowadzka wszystkie stare zasoby do nowego adresu URL.

Dobra wiadomość dla

wszystkie zewnętrzne definicji są zapisywane jako SVN-właściwościach wewnątrz źródłowego repo, można uzyskać listę tych zewnętrznymi (z wartości) oraz aktualizację z nowymi wartościami, a to działanie (teoretycznie) może być zautomatyzowane

svn propget -R svn:externals . > FILE w korzeniu kopii roboczej dla uzyskania zewnętrznymi

svn propset svn:externals --target FILE definiowania nowych externals w partii

+0

Więc na 1 potrzebuję dostępu do DNS dla domeny dyndns.org? A może coś źle zrozumiałem? – dummzeuch

+0

@dummzeuch - nie, musisz mieć dostęp do strefy 'mydomain.com' w celu dodania domen RRs' svn IN CNAME mysvn.dyndns.org', ale przeczytaj p.2 po nim - to nie rozwiąże problemu dostęp do klientów svn –

1

mogę zaproponować Alterna te podejście?

Zakładając, że używasz svn 1.5 lub wyższym, które supports relative URLs dla zewnętrznymi, po jednym z podejść w this question zmienić wszystkie urządzenia zewnętrzne w stosunku do rozwiązałoby bardziej fundamentalny problem.

A jeśli nie są to wszystkie względne adresy URL, możesz je zmienić z serwera1 na serwer2 przy użyciu podobnego skryptu. Robi się to rutynowo podczas migracji serwerów. Zakładając, że zachowujesz dobre backups, jest to prawdopodobnie podejście, które pozwoli ci rozwiązać cały problem, zamiast odkładać go w czasie.

Powiązane problemy