|
|
pl:miw:2009:miw09_wiki_sync [2009/04/06 16:49] jsi08 |
pl:miw:2009:miw09_wiki_sync [2019/06/27 15:50] |
====== 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 (katalog dokuwiki/data/pages), nie są synchronizowane żadne inne dane (rewizje, catch, itp.). | |
| |
==== Instalacja ==== | |
| |
| |
====== 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]] | |