Przeniesienie repo na Synka - od początku krok po kroku

Dyskusja w 'SVN Server' rozpoczęta przez użytkownika Fixer, 2 Wrzesień 2016.

Tagi:
  1. Fixer

    Fixer Zarejestrowany Noobie

    Zacznę od tego że męcząc ten temat nie natrafiłem po drodze na żadne problemy czy bariery - wiec zachęcam do poświęcenia chwilki bo się opłaci...

    Trzy pytania wstępne:
    1. Gdzie fizycznie znajdują się repozytoria SVN na nasie?
    2. Jak przenieś repo z dysku twardego komputera do NAS'a?
    3. jak rozpoznać użytą wersję bazy danych w repo żeby wiedzieć czy ją aktualizować czy nie?

    Opowiem sobie sam:
    1. Tam gdzie je wskazaliśmy przy instalacji, u mnie domyślnie czyli
    Kod:
    /volume1/svn/

    3. Szukaj pliku
    Kod:
    repo_moje/db/format
    odczytujemy go notatnikiem i może być zapisana w nim wersja 2/3/4/5/6/7...
    Dla przykładu moje stare repo miało tak:
    Kod:
    4
    layout sharded 1000
    a nowe repo w synku ma tak:
    Kod:
    7
    layout sharded 1000
    addressing logical

    2. Zacznę od tego, że są na to dwie prawilne metody (obie przetestowałem i są skuteczne). Szybsza okazała się wersja pierwsza. Bo zabawa z backupem jest czasochłonna.
    W przypadku gdy repo NIE jest zbyt stare (np. wersja 4 pochodząca z tortoise 1.6 do wersji 7) można robić UPGRADE bazy z CLI przez WinSCP
    Kod:
    cd volume1/svn
    svnadmin upgrade repo_moje
    Screenshot_3.png

    Jeśli się nie uda to jest inna metoda - przywracanie z kopii zapasowej, którą sami wykonamy
    1. Zaczynamy od zrobienia kopii starego działającego repozytorium (w Windowsie):
    składnia:
    Kod:
    svnadmin dump path > backup.dump
    w praktyce:
    Kod:
    D:\Subversion\bin\svnadmin dump "D:\svn_repositorys\repo_moje" > "D:\svn_repositorys\repo_moje.dump"
    2. Tworzymy nowe repozytorium na Synku z linii komend (lepiej zrobic to przez GUI SVN z synka)
    Kod:
    cd volume1/svn
    svnadmin create repo_moje
    Screenshot_2.png

    3. Przywracamy kopię.
    Wchodzimy przez WinSCP (włączone SSH na synku) i wysyłamy do katalogu SVN plik *.dump
    Otwieramy konsolkę CLI i wklepujesz...
    składnia:
    Kod:
    svnadmin load repo_moje< repo_moje.dump
    w praktyce (windows):
    Kod:
    D:\Subversion\bin\svnadmin load "D:\svn_repositorys\repo_moje" < "D:\svn_repositorys\repo_moje.dump"
    w praktyce (nas):
    Kod:
    cd volume1/svn
    svnadmin load repo_moje < repo_moje.dump
    Screenshot_1.png


    4. sprawdzamy konfigurację i wprowadzamy niezbędne poprawki
    a) repo_moje/conf/svnserve.conf
    Kod:
    [general]
    anon-access =none
    auth-access = write
    password-db = passwd
    b) repo_moje/conf/passwd
    Kod:
    [users]
    nasztajnylogin = jakiestajnehaslo
    5. Na końcu pobieramy zdalnie projekt do edycji z serwera SVN Synology (checkout)
    Kod:
    svn co --username nasztajnylogin --password="jakiestajnehaslo" svn://ADRES_IP/repo_moje/.
    Screenshot_4.png

    Pomocne ŹRÓDŁA przy opracowywaniu:
    svnadmin upgrade
    How to find out Subversion repository version?

    ------------------------------------------------------------
    update:
    A teraz nieco szybsza metoda wstawiania plików projektowych www do naszej czystej bazy SVN na synku: