Subversion(w skrócie svn) jest systemem kontroli wersji, który zastąpił CVS. System stosowany do kontrolowania zmian w projektach. Innymi systemami stosowanymi przez programistów jest git, bzr i Mercurial.
Wymagana jest instalacja serwera svn:
opkg update opkg install subversion-server # dla serwera opkg install subversion-client # dla klienta
oraz utworzenie prostego repozytorium o nazwie np. mojerepo. Repozytorium najlepiej utworzyć na podmontowanym nośniku, nie zajmujemy w ten sposób miejsca w pamieci routera. Zakładam ze nośnik podmontowamny jest w /mnt/hdd/:
mkdir /mnt/hdd/mojerepo svnadmin create /mnt/hdd/mojerepo uci set subversion.@subversion[0].path=/mnt/hdd (katalog niżej!!) uci commit subversion
Edytujemy plik konfiguracyjny i ustalamy prawa zapisu i odczytu. Zakładamy, że anonim może pobrać nasze repo, zapisywać tylko osoby znające hasło:
vi /mnt/hdd/mojerepo/conf/svnadmin.conf
anon-access = read auth-access = write password-db = passwd
Ustalamy nazwę/y uzytkownika/ów oraz hasła w pliku /mnt/hdd/mojerepo/conf/passwd
[users] wladek = tajne_haslo_wladka zosia = to_jest_haslo_zosi
Uruchamiamy serwer
/etc/init.d/subversion start
Autostart
/etc/init.d/subversion enabled
Warto sprawdzić czy działa nasze repozytorium:
Pobieramy repozytorium
cd /tmp svn co svn://localhost/mojerepo cd mojerepo
Tworzymy próbny plik i wysyłamy:
touch plik.txt svn add plik.txt svn commit --username wladek (wpisujemy notatkÄ™ dotyczÄ…ca zmian, np. proba)
UWAGA: Przy svn commit zostaniemy poinformowani o braku domyślnego edytora plików, należy wówczas wydać komendę:
export SVN_EDITOR=vi (lub inny edytor)
przyszłościowe rozwiązanie to edycja /etc/rc.local i przed exit 0 dodać to samo co wyżej.
Ostatecznie zostaniemy zapytani o nazwę użytkownika i hasło, wpisujemy to co ustaliliśmy na początku.
Otwieramy port w zaporze:
uci add firewall rule uci set firewall.@rule[-1]._name=svn uci set firewall.@rule[-1].src=wan uci set firewall.@rule[-1].target=ACCEPT uci set firewall.@rule[-1].proto=tcp uci set firewall.@rule[-1].dest_port=3690 uci commit firewall /etc/init.d/firewall restart
Domyślnie Subversion działa na porcie 3690, zmian portu można dokonać przez uci:
uci subversion.@subversion[0].port=3690 uci commit subversion
