Okazuje się że instalacja Submina na czystym systemie jest troszkę łatwiejsza niż na maszynie która już stoi z SVNem od dawna. Zauroczony możliwościami Submina, postanowiłem postawić go także na serwerze deweloperskim, który już od dłuższego czasu stanowi moją bazę SVNową. Po instalacji i konfiguracji, okazało się że o ile odwiedzanie repo przez WebSVN czy też Submina działa, o tyle dostęp przez HTTP już nie.
Wchodząc, dostajemy taką oto wiadomość:
Could not open the requested SVN filesystem
Rozwiązanie trywialne. Otwieramy plik /etc/apache2/conf.d/@submin.conf i zmieniamy linijkę:
SVNParentPath /var/lib/submin/svn
Na ścieżkę w której znajdują się repozytoria. U mnie jest to:
SVNParentPath /var/svn
Po wszystkim resetujemy Apache i cieszymy się działającym SVNem.
W tej części omówimy fajne narzędzie jakim jest Submin. Submin jest webową aplikacją, która pozwala na wygodne i szybkie zarządzanie SVNem. Interfejs tego programu jest bardzo prosty:
Jak widać na załączonym screenie, mamy po lewej stronie menu a po prawej content. Minimalistycznie i funkcjonalnie.
Zarządzanie użytkownikami
Pierwszą rzeczą jaką można zrobić z pomocą Submina, jest tworzenie i zarządzanie użytkownikami SVNa. Klikając na "Users" rozwija się nam lista użytkowników. Po najechaniu na konkretnego usera, wyświetla się krzyżyk, za pomocą którego możemy użytkownika usunąć. Jeśli zaś klikniemy na jego nicka, dostaniemy takie oto okno z danymi:
W opcjach tych możemy przypisać użytkownikowi jego nazwę, adres e-mail oraz zmienić hasło dostępowe do systemu. Możemy także przypisać go do wybranych grup. Przypisywanie do grup przydaje się gdy prowadzimy wiele projektów, w których uczestniczą różni użytkownicy. W tym panelu edytujemy już istniejące konta, aby zaś dodać nowe, musimy kliknąć na pierwszą (licząc od lewej strony) ikonkę, znajdującą się w lewym dolnym rogu panelu. Po jej naciśnięciu pokażą się nam następujące opcje:
Trochę dziwnie jest zrealizowana opcja ustawiania hasła. Najpierw musimy założyć użytkownikowi konto, a dopiero potem, po utworzeniu konta, pojawi się nam okno edycji ustawień użytkownika, gdzie musimy ustawić hasło. Przy okazji, w razie potrzeby przypisujemy go także do grup. Tyle jeśli chodzi o tworzenie i edycję użytkowników. Warto pamiętać o tym żeby przez przypadek nie przypisać użytkownika do grupy submin-admins, ponieważ taki user uzyska wtedy pełny dostęp do panelu Submin.
Grupy
Zasadniczo zarządzanie grupami opisałem już powyżej. Nie ma tu wielu opcji. Dodawanie grup przebiega w sposób analogiczny do dodawania userów. Najpierw klikamy w środkową ikonkę, znajdującą się w lewym dolnym rogu Submina. Następnie podajemy nazwę grupy i klikamy na "Create":
Po utworzeniu grupy zostaniemy przeniesieni do obszaru gdzie możemy do grupy przypisać/usunąć danych użytkowników:
Interfejs dodawania/usuwania użytkowników jest AJAXowy więc strona nie jest przeładowywana. Aby edytować ustawienia danej istniejącej już grupy, wystarczy kliknąć na "Groups" i je rozwinąć, a następnie wybrać interesującą nas grupę.
Zarządzanie repozytoriami
Zarządzanie repozytoriami nie różni się niczym od zarządzania użytkownikami i grupami. Wybieramy ostatnią z prawej ikonkę, aby dodać repozytorium:
Podajemy jego nazwę i naciskamy "Create". Po utworzeniu repozytorium, zostaniemy przeniesieni do okna gdzie mamy informacje na jego temat:
Pierwsze co widzimy, to URL naszego repozytorium. Ten URL podajemy użytkownikowi aby mógł podłączyć się do repozytorium i utworzyć swoją kopię roboczą. Oczywiście nie kopiujemy tego małego fragmentu, tylko dajemy prawy przycisk myszki, a następnie "Kopiuj adres odnośnika".
Bardzo ważną rzeczą, jaką musimy zrobić, aby nasi użytkownicy mogli korzystać z naszego systemu, jest dodanie uprawnień. Robimy to klikając na "Permissions":
Będąc w menu uprawnień, wybieramy z listy grupę lub użytkownika, któremu chcemy przydzielić uprawnienia. Po przypisaniu do projektu, pamiętajmy o nadaniu uprawnień. RW jeśli użytkownik/grupa ma mieć prawo wglądu i modyfikacji repozytorium, lub tylko R jeśli ma mieć prawo do odczytu.
Cały Submin jest bardzo prostym narzędziem, jednak dzięki swojej prostocie jest wygodny i praktyczny. A że przy okazji spełnia wszystkie wymagania, jakie stoją przed narzędziem do zarządzania uprawnieniami dostępu do SVNa, to czegóż chcieć więcej :)