Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:2009:miw09_wiki_sync [2009/06/17 16:22] jsi08 |
pl:miw:2009:miw09_wiki_sync [2019/06/27 15:50] (aktualna) |
| |
====== Sprawozdanie ====== | ====== Sprawozdanie ====== |
| |
| |
==== Cel projektu ==== | ==== 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ść: | 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, | * pobrania DokuWiki na lokalny komputer, |
* edycji lokalnej kopii bez dostępu do internetu, | * edycji lokalnej kopii bez dostępu do internetu, |
* synchronizacji lokalnej kopii z aktualną wersją znajdującą się na serwerze. | * synchronizacji lokalnej kopii z aktualną wersją znajdującą się na serwerze. |
| |
==== Opis działania ==== | ==== Opis działania ==== |
- Instalacja unisona (w takiej samej wersji jak na lokalnym komputerze). | - Instalacja unisona (w takiej samej wersji jak na lokalnym komputerze). |
| |
==== Podsumowanie ==== | |
| |
====== Spotkania ====== | ====== Spotkania ====== |
| |
| |
| |
==== 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: | |
* test połączenia z serwerem, | |
* test ścieżki do DokuWiki na serwerze. | |
- 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: | |
* test połączenia z serwerem, | |
* test ścieżki do DokuWiki na serwerze. | |
- 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: | |
* test połączenia z serwerem, | |
* test ścieżki do DokuWiki na serwerze. | |
- Ostateczne rozwiąznie konfliktów (poniższe czynności są wykonywane dla każdego pliku, dla którego wystąpił konflikt): | |
* połączenie aktualnej wersji pliku z poprzednią, | |
* przegranie pliku na serwer. | |
| |
==== 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 ==== | |
* {{pl:miw:2009:miw09_wiki_sync:sync_20090407.zip|sync-latest}} | |
| |
==== 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 ^ | |
| {{pl:miw:2009:miw09_wiki_sync:example1_localhost.jpg}} | {{pl:miw:2009:miw09_wiki_sync:example1_server.jpg}} | | |
| |
Została wybrana strona "start", a następnie z panelu administracyjnego został wybrany plugin synchronizujący. W efekcie otrzymujemy poniższy ekran. | |
| |
{{pl:miw:2009:miw09_wiki_sync:example1_step1.jpg}} | |
| |
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: | |
| |
{{pl:miw:2009:miw09_wiki_sync:example1_step2.jpg}} | |
| |
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ę: | |
| |
{{pl:miw:2009:miw09_wiki_sync:example2_error.jpg}} | |
| |
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: | |
| |
{{:pl:miw:2009:miw09_wiki_sync:example3_conflict.jpg?750}} | |
| |
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. | |
| |
| |