2011-02-05 18 views
6

Korzystamy z serwera DIY SVN w biurze od około roku. Jest to prosta konfiguracja z SVN zainstalowanym na serwerze domowym. Używamy SVN do żółwi, aby uzyskać do nich dostęp. Żałuję, że nie dowiedziałem się o systemie edycji wersji lat temu. W każdym razie, oczywiście dostęp do serwera jest doskonały w biurze w sieci 1Gbps, ale poza nim jest użyteczny, ale słaby, ograniczony przez 50kB/s prędkość wysyłania naszej linii ADSL do sieci. Myślę, że może to poprawić jeden dzień z "nieskończonością", ale możemy umrzeć czekając.Czy mogę utworzyć hostowane repozytorium SVN "równolegle" do mojego własnego serwera biurowego?

Chciałbym mieć "równoległe" repozytorium hostowane, za które zdaję sobie sprawę, że zapłacę, gdzie dostęp jest znacznie szybszy. To również da nam dodatkową kopię zapasową. Moje repo ma nieco poniżej 40G, więc limit 100G byłby w porządku. Czy istnieje sposób na zrobienie tego i zrobienie tych dwóch jako luster tak, że commits (przynajmniej małe) są widoczne w obu niemal natychmiast? Używam już polecenia Svnbackup do utworzenia równoległego zwierciadła na naszym serwerze, więc czy to działa w obie strony?

Wszelkie sugestie i alternatywy są mile widziane.

TIA Brian

Odpowiedz

2

Chcesz serwer tylko do odczytu lub odczytu + zapisu do więcej niż jednego serwera? Gdy potrzebujesz tylko lustra tylko do odczytu, możesz użyć svnsync do replikacji serwera biurowego do serwera kopii dystrybucyjnej.

Jeśli chcesz dokonać zatwierdzenia z różnych miejsc, spójrz na rozproszone narzędzie, takie jak hg + hgsubversion lub git-svn, które mogą być używane jako klienci asynchroniczni dla svn.

+0

Dzięki. Proszę przeczytać i napisać. Moje główne zastosowanie lusterka www byłoby w domu (lub poza biurem). –

+1

@Brian Nie można (łatwo) skonfigurować klastra serwerów svn z wieloma wzorcami, ponieważ model danych svn na to nie pozwala. Możesz umieścić serwer centralny w Internecie, co powoduje utratę wydajności w Twoim biurze. Musisz sam zdecydować, czy utrata wydajności jest dla ciebie akceptowalna. Alternatywą jest użycie mercurial lub git jako klienta svn, ponieważ te narzędzia umożliwiają pracę w trybie offline. Ale podejście DVCS działa tylko wtedy, gdy nie potrzebujesz takich funkcji jak blokowanie plików czy częściowe sprawdzanie drzew. – Rudi

0

Standardowy serwer Linux SVN zawiera haki, które umożliwiają uruchamianie własnych skryptów zdarzeń. Możesz użyć haka po zatwierdzeniu (po prostu umieść skrypt o nazwie "post-commit" w katalogu "hooks").

Teraz możesz po prostu opublikować hotcopy całego repozytorium, które jest raczej łatwe do skonfigurowania (svnadmin hotcopy from to) i skopiować repozytorium do innego hosta w Internecie za pomocą ssh lub tym podobne. Możesz to zrobić na obu maszynach i jesteś dobry.

Wady:

  • Jeśli repozytorium jest duża, to zajmuje dużo czasu
  • Uważaj na możliwość, że ktoś popełnia do jednego repozytorium i kogoś do innego repozytorium jednocześnie. To może wszystko zepsuć. Musisz upewnić się, że tak się nie stanie lub znaleźć sposób zablokować repozytorium (jak zamknąć svn podczas procesu kopiowania)
  • Trzeba powłoki dostępu do obu maszyn

Możesz być w stanie przyspieszyć poprzez zapisanie repozytorium w lokalnym pliku i przesyłanie różnic tylko do drugiego komputera.

1

To, czego naprawdę potrzebuję, to serwer proxy dla niewolników - jest to kopia serwera subversion dla dostępu tylko do odczytu, podczas pisania (do niego), zatwierdzenia są przekazywane bezpośrednio do wzorca. Czytając o wiele więcej niż pisać, zapewnia prosty, ale skuteczny sposób, aby osiągnąć to, co chcesz.

W internecie jest mnóstwo tutorials, ale wszystkie one wymagają uruchomienia subversion za pomocą dostępu http (nie svnserve). Niewolnik jest na bieżąco aktualizowany przez doskonałą svnsync i hak po popełnieniu błędu.

+0

@gbjbaand: To sprytny pomysł, dzięki. –