To jest stara wersja strony!
MIW 2009 WIKI SYNC
Prezentacja
Sprawozdanie
Spotkania
Projekt
Cel projektu
Celem projektu jest stworzenie pluginu do DokuWiki, który umożliwi synchronizację całego DokuWiki, wybranej przestrzeni nazw lub wybranego pliku. Zadaniem pluginu jest umożliwienie lokalnej pracy z DokuWiki, bez dostępu do internetu. Użytkownik powiniem posiadać możliwość:
pobrania DokuWiki na lokalny komputer,
edycji lokalnej kopii bez dostępu do internetu,
synchronizacji lokalnej kopii z aktualną wersją znajdującą się na serwerze.
Opis działania
Synchroniazacja odbywa się w następujących krokach:
Wstępne wybranie strony, która zostanie poddana synchronizacji:
przejście na wybraną stronę,
przejście do panelu administacyjnego,
wybranie pluginu odpowiedzialnego za synchronizację.
Sprawdzenie połączenia:
Wybranie przestrzeni nazw (pliku), która zostanie poddana synchronizacji:
wyświetlenie drzewa przestrzeni nazw (wstępnie wybrana strona zostaje zaznaczona),
ostateczny wybór przestrzeni nazw (strony), która zostanie zsynchronizowana.
Ponowne sprawdzenie połączenia:
Sprawdzenie, czy synchronizacja podanej ścieżki może zostać przeprowadzona.
Synchronizacja wybranej przestrzeni nazw (ścieżki):
wypisanie wszystkich zsynchronizowanych pomyślnie plików,
wypisanie wszystkich plików, których synchronizacja zakończyła się niepowodzeniem (wystąpiły konflikty).
Rozwiązanie wszystkich konfliktów (poniższe czynności są wykonywane dla każdego pliku, dla którego wystąpił konflikt):
zapisanie lokalnego pliku w REV,
zapisanie pliku znajdującego się na serwerze, jako pliku aktualnego na lokalnym komputerze,
porównanie aktualnej wersji pliku (plik z serwera) z poprzednią (plik z lokalnego komputera),
określenie w jaki sposób pliki zostaną połączone.
Ponowne sprawdzenie połączenia:
Ostateczne rozwiąznie konfliktów (poniższe czynności są wykonywane dla każdego pliku, dla którego wystąpił konflikt):
Ograniczenia
Plugin posiada następujące ograniczenia:
nie można synchronizować przestrzeni nazw (strony), która znajduje się w niezsynchronizowanej przestrzeni nazw,
synchronizowana są tylko aktualne wersje stron (katalog dokuwiki/data/pages), nie są synchronizowane żadne inne dane (rewizje, catch, itp.).
Pobierz
Instalacja
Instalacja lokalna
Instalacja:
DokuWiki,
unisona,
expect.
Przekopiowanie pluginu sync
do katalogu z pluginami (dokuwiki/lib/plugins
).
Wprowadzenie danych dostępowych do serwera w pliku dokuwiki/lib/plugins/sync/conf/defult.php
, (użytkownik musi należeć do grupy www-data).
Ustawienie grupy (www-data) oraz praw dostępu do katalogu (770), jeśli katalog nie istnieje należy go stworzyć:
dokuwiki/lib/plugins/sync/unison
,
dokuwiki/lib/plugins/sync/diff
,
/var/www/.ssh
.
Użytkownik powinien posiadać dostęp do niektórych plików znajdujących się w powyższych katalogu. Aby mieć pewność, że użytkownik będzie posiadać wymagane prawa dostępu najlepiej usunąć zawartość katalogów (o ile istnieje).
Instalacja na serwerze
Instalacja unisona (w takiej samej wersji jak na lokalnym komputerze).
Przykłady
Brak konfliktów
Przed synchronizacją struktura katalogu wyglądała następująco:
Lokalny | Serwer |
| |
Została wybrana strona „start”, a następnie z panelu administracyjnego został wybrany plugin synchronizujący. W efekcie otrzymujemy poniższy ekran.
Obserwujemy, że test połączenia z serwerem oraz ścieżki do DokuWiki na serwerze przebiegł pomyślnie. Ostatecznie wybieramy synchronizacje całego DokuWiki. Efekt synchronizacji obserwujemy na następnym ekranie:
Ponownie testy zakończyły się sukcesem. Test synchronizacji, który określa, czy dana ścieżka może zostać zsynchronizowana, również przebiegł pomyślnie. Zostały także wypisane ścieżki, które zostały zsynchronizowane.
Sygnalizacja błędów
Jeśli test połączenia z serwerem zostanie zakończony niepowodzeniem, synchronizacja zostanie przerwana, a na ekranie pojawi się:
Podobnie wyświetlane są informacje o innych testach, które zakończyły się niepowodzeniem.
Rozwiązywanie konfliktów
W przypadku wystąpienia konfliktu, użytkownik zostaje o tym powiadomiony:
W przypadku, gdy nie podejmie decyzji w jaki sposób powinny zostać połączone pliki, aktualną wersją staje się plik znajdujący się na serwerze.
Materiały
Unison
DokuWiki