To jest stara wersja strony!


MIW 2009 WIKI SYNC

**Zrealizował: Sebastian Pracuch (4RI)

:!: Develop a synchronization plugin for 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 unison rsync last resort? cvs http://kdiff3.sourceforge.net/ http://meld.sourceforge.net/

Prezentacja

Sprawozdanie

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:

  1. Wstępne wybranie strony, która zostanie poddana synchronizacji:
    • przejście na wybraną stronę,
    • przejście do panelu administacyjnego,
    • wybranie pluginu odpowiedzialnego za synchronizację.
  2. Sprawdzenie połączenia:
    • test połączenia z serwerem,
    • test ścieżki do DokuWiki na serwerze.
  3. 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.
  4. Ponowne sprawdzenie połączenia:
    • test połączenia z serwerem,
    • test ścieżki do DokuWiki na serwerze.
  5. Sprawdzenie, czy synchronizacja podanej ścieżki może zostać przeprowadzona.
  6. 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).
  7. 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.
  8. Ponowne sprawdzenie połączenia:
    • test połączenia z serwerem,
    • test ścieżki do DokuWiki na serwerze.
  9. 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

Instalacja

Instalacja lokalna

  1. Instalacja:
    • DokuWiki,
    • unisona,
    • expect.
  2. Przekopiowanie pluginu sync do katalogu z pluginami (dokuwiki/lib/plugins).
  3. Wprowadzenie danych dostępowych do serwera w pliku dokuwiki/lib/plugins/sync/conf/defult.php, (użytkownik musi należeć do grupy www-data).
  4. 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

  1. Instalacja unisona (w takiej samej wersji jak na lokalnym komputerze).

Podsumowanie

Spotkania

Projekt

Instalacja

Instalacja lokalna

  1. Instalacja:
    • DokuWiki,
    • unisona,
    • expect.
  2. Przekopiowanie pluginu sync do katalogu z pluginami (dokuwiki/lib/plugins).
  3. Wprowadzenie danych dostępowych do serwera w pliku dokuwiki/lib/plugins/sync/conf/defult.php, (użytkownik musi należeć do grupy www-data).
  4. 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

  1. 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
example1_localhost.jpg 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.

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:

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ę:

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:

example3_conflict.jpg

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

pl/miw/2009/miw09_wiki_sync.1245248773.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0