schlittermann
Die Arbeit mit Sitecopy
    Es gibt also schon eine Webpräsenz
    Das tägliche Leben mit Sitecopy
        Vergleichen
        Hochladen
        Runterladen
        Modifikationen von Dritten
    Noch mal eine Zusammenfassung

Die Arbeit mit Sitecopy

Es wird kurz erklärt, wie mit Sitecopy zu arbeiten ist. Als Beispiel nehmen wir eine bereits vorhanden Webpräsenz, die in Zukunft mit Sitecopy verwaltet werden soll. Zuerst wird das Einrichten erläutert, dann das tägliche Leben mit Sitecopy und am Ende ist noch mal eine kurze Zusammenfassung der wichtigsten Optionen.

Es gibt also schon eine Webpräsenz

Sie haben schon eine Site auf dem Webserver und wollen in Zukunft diese mit Sitecopy bearbeiten. Was ist zu tun?

  1. Sitecopy sucht seine Konfiguration in der Datei ~/.sitecopyrc. Diese Datei editieren wir (bzw. beim ersten Mal wird sie neu angelegt). Je Site muss dort etwa folgender Eintrag rein:
    # ~/.sitecopyrc
    site site # ein netter und kurzer Name der Site
        server Hostname # Name des Servers
        username Nutzer # Name des FTP-Nutzers
        local Verzeichnis # Lokales Arbeitsverzeichnis (z.B. ".")
        remote Verzeichnis # korrespondierendes Verzeichnis auf dem fremden Server
        exclude Muster # Dateien und Verzeichnisse, die nicht synchronisiert werden sollen (z.B. ".svn")
        checkmoved # wenn lokal Dateien nur zwischen Verzeichnissen verschoben werden, dann auch auf der FTP-Server Seite
        safe # es werden keine zwischenzeitlich auf der anderen Seite geänderten Files überschrieben

    Damit wir dann nicht immer nach dem Passwort gefragt werden, legen wir eine weitere Datei an (oder ergänzen sie), das File heißt ~/.netrc und wird auch von anderen FTP-Clients genutzt, um Nutzernamen und Passworte zu erfahren.
    # ~/.netrc
    machine FTP-Host login FTP-Nutzer password FTP-Passwort

    Damit kein anderer diese ~/.netrc lesen kann, machen wir beim ersten Mal noch sicherheitshalber ein chmod go= ~/.netrc.

    Ein eventueller Default-Eintrag muß am Ende der Datei stehen.

    Natürlich hätte man das Passwort auch in die .sitecopyrc schreiben können, aber das gefällt mir nicht, falls wir die .sitecopyrc zusammen mit den einzelnen Sites irgendwo zentral lagern.

  2. Es wird lokal ein leeres Verzeichnis angelegt, nennen wir es workdir/. Dieses Verzeichnis kann auch schon Teile der Präsenz auf dem Web-Server enthalten. Zu beachten ist lediglich, daß dann beim Download eventuell Files gelöscht werden, die auf dem Server nicht vorhanden sind!
  3. Jetzt müssen wir uns vom fremden Server eine Liste mit den dort aktuellen Files abholen, dazu gehen wir erstmal in das Arbeitsverzeichnis (cd workdir) und verwenden nun
    sitecopy -f Site
    Wenn wir neugierig sind, können wir mit einer Debug-Option auch noch dem FTP-Transfer zusehen: sitecopy -d ftp -f ....
  4. Nun können wir uns ansehen, was Sitecopy zu dieser Veranstaltung sagt, dabei wird nichts gelöscht oder übertragen, es vergleicht einfach nur die Fileliste des Servers mit den lokal vorhandenen Dateien:
    sitecopy Site
    Eine Aussage wie * These items have been deleted since... heißt nur, daß auf unserer Seite diese Files verschwunden sind, seitdem wir die Site das letzt mal aktualisiert hatten. (Aber das haben wir ja noch nie! Sitecopy weiß das natürlich nicht.)
  5. Nun können wir synchronisieren, also die Files vom Server runterladen:
    sitecopy -s Site
    Vorsicht: Dabei werden lokal vorhandene Files gelöscht, falls sie im Wege liegen. Es ist also wichtig, im richtigen Arbeitsverzeichnis zu sein. Dieser Fehler (menschliches Versagen) läßt sich vermeiden, wenn wir in der ~/.sitecopyrc nur absolute Pfadnamen für das lokale Verzeichnis eintragen.

    Anmerkung: Leider ist Sitecopy im Augenblick nicht in der Lage, tiefe Verzeichnis-Hierarchien anzulegen, als Workaround hilft hier, sitecopy -s ... so oft aufzurufen, bis alle Verzeichnisse vorhanden sind. Das Problem tritt nur auf, wenn das Elternverzeichnis eines anzulegenden Verzeichnisses noch nicht vorhanden ist.

  6. Nun können wir nach Belieben lokal ändern und anpassen. Wenn wir dann glauben, daß wir fertig sind, kann wieder hochgeladen werden:
    sitecopy -u Site
    Es werden dabei die Files aktualisiert, von denen Sitecopy glaubt, daß sie auf dem Server in einer alten Version vorliegen. (Über die Versionen auf dem Server hat Sitecopy sich ja am Anfang mit sitecopy -f ... informiert bzw. tut es bei jedem Upload automatisch.)

    Solange die Option safe in der Konfigurations-Datei steht, wird Sitecopy auch keine Files auf dem Server überschreiben, die dort zwischenzeitlich verändert wurden.

Das tägliche Leben mit Sitecopy

Halten wir noch mal fest: Sitecopy hat eine lokale Liste der Files auf dem Server. Normalerweise stimmt diese Liste -- wenn außer uns selbst keiner den Server aktualisiert.

Vergleichen

Nach lokalen Änderungen möchten wir gerne sehen, was Sitecopy nun eigentlich hoch- oder runterladen würde. Dafür genügt ein
sitecopy Site

Hochladen

Wenn wir also lokal etwas an den Webseiten geändert haben und nun sollen diese Änderungen wieder zum Server, dann geht das mit
sitecopy -u Site
ganz einfach. Sitecopy vergleicht unsere lokalen Files mit der lokalen Liste der Serverdateien und lädt alle veränderten Files wieder hoch. Wenn sich inzwischen auf dem Server die Files auch geändert haben sollten (weil vielleicht auch noch jemand anders aktualisiert hat), dann wird Sitecopy diese Files überschreiben, außer die Option safe ist in der Konfigurationsdatei.

Runterladen

Wenn wir lokal etwas zerstört haben und wollen die Files vom Server wieder zurück holen, dann können wir das mit
sitecopy -s Site
erledigen. Achtung: Dabei werden alle(!) lokalen Änderungen mit den Dateien vom Server überschrieben. Es ist also eine gute Idee, lokal vorher eine Kopie zu machen.

Modifikationen von Dritten

Haben auf dem Server zwischenzeitlich Modifikationen von Dritten stattgefunden, dann stimmmt natürlich die Vorstellung, die unser Sitecopy vom Server hat, nicht mehr (diese Vorstellung liegt in der oben erwähnten lokalen Fileliste). Dann muß mit
sitecopy -f Site
diese Fileliste wieder aktualisiert werden. Danach können wir gewohnt weiterarbeiten.

Noch mal eine Zusammenfassung

sitecopy Site zeigt, welche Änderungen auf dem Server zu tun wären, damit er der lokalen Version entspricht.
sitecopy -u Site Upload der lokalen Version zum Server, der Server wird der lokalen Seite angepaßt. Files auf dem Server werden eventuell überschrieben (nur wenn safe nicht in der Konfigurationsdatei steht). Achtung: Files, die lokal nicht mehr vorhanden sind, werden trotzdem auf dem Server gelöscht, unabhängig von safe. (Ich denke, das ist ein Bug.)
sitecopy -f Site Download der Fileliste vom Server, das sollte immer dann gemacht werden, wenn der Verdacht besteht, daß auf dem Server Änderungen von Dritten gemacht wurden.  
sitecopy -s Site Download vom Server, die lokale Seite wird dem Server angepaßt. Files werden lokal eventuell überschrieben oder gelöscht!