To jest stara wersja strony!
Opis
Wiki_Sync
Spotkania
20090409
-
page sync?
namespace sync?
20090312
20090225
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
).
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 w katalogu, dlatego należy usunąć zawartość katalogu (jeśli istnieje) lub ustawić odpowiednie prawa.
Wprowadzenie danych dostępowych do serwera w pliku dokuwiki/lib/plugins/sync/conf/defult.php
, (użytkownik musi należeć do grupy www-data).
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.
Sprawozdanie
Prezentacja
Materiały
Unison
DokuWiki