[[
✎ pl:miw:2009:miw09_wiki_sync
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Opis ====== Sebastian Pracuch, <sebastian@pracuch.pl> ==== Wiki_Sync ==== :!: Develop a synchronization [[http://www.dokuwiki.org/devel:plugins|plugin]] for [[http://www.dokuwiki.org/|Dokuwiki]] for disconnected work, that allows a developer to work and extend a disconected copy of the wiki, and then a back replication, possibly with merging. Tools to consider [[http://www.cis.upenn.edu/~bcpierce/unison/|unison]] [[http://en.wikipedia.org/wiki/Rsync|rsync]] last resort? [[http://en.wikipedia.org/wiki/Concurrent_Versions_System|cvs]] [[http://kdiff3.sourceforge.net/]] [[http://meld.sourceforge.net/]] ====== Spotkania ====== ===== 20090409 ==== * beta + spec * page sync? * namespace sync? FIXME ===== 20090312 ==== * rozpracowane api do diff w wiki * specyfikacja scenriuszy ===== 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: * 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}} ==== 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''. - Wprowadzenie danych dostępowych do serwera w pliku ''dokuwiki/lib/plugins/sync/conf/defult.php'', === 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. ====== Sprawozdanie ====== ====== Prezentacja ====== ====== Materiały ====== ==== Unison ==== * [[http://www.cis.upenn.edu/~bcpierce/unison/]] ==== DokuWiki ==== * [[http://www.dokuwiki.org/devel:admin_plugins]] * [[http://www.dokuwiki.org/devel:admin_plugin_skeleton]]
pl/miw/2009/miw09_wiki_sync.1239122548.txt.gz
· ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry