Subversion Repository als "dynamische Website" nut

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Donnerstag 14. Juni 2007, 08:36

Also. Vorab: Ich bekomme es nicht hin, mir nen post-commit script zu basteln, das meine Website vom Subversion Repository in das "richtige" Verzeichnis kopiert.
Sollte jemand hier ein Beispiel script haben, bin ich immer glücklich. Denn die Beispiele im SVN-source repo halfen mir nicht/kaum weiter.


Die andere möglichkeit, die ich gesehen habe, ist die Dateien, die zu meiner Webpage gehören mit entsprechenden Mimetypes zu versehen.
So funktioniert schonmal der Aufruf von http://svn.webshox.org/www/index.html einwandfrei. Aber verlinkt man nur auf http://svn.webshox.org/www gibts das Problem, das die 'index.html' nicht als IndexDocument angezeit wird.

Gibt es dafür ne Lösung?


Am glücklichsten währe ich ja über eine Hilfe für den ersten Teil, da der zweite mir nur wie nen workaround ausschaut.

MfG EnTeQuAk
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 15. Juni 2007, 08:45

EnTeQuAk hat geschrieben:post-commit script [...] das meine Website vom Subversion Repository in das "richtige" Verzeichnis kopiert.
Hallo EnTeQuAk!

Ich habe nur eine schlechte Lösung. Die ist nur dann ratsam, wenn du lokal entwickelst und erst dann, wenn die Website lokal funktioniert, diese mit "commit" auf den Server schiebst.

Im post-commit-Skript könntest du zuerst den Zielordner löschen und dann mit "svn export" den Inhalt des Trunk-Ordners in den neu erstellten Zielordner exportieren.

So z.B.:

Code: Alles auswählen

SOURCE="/home/gerold/svn/home_gerold/trunk"
DEST_DIR="/home/gerold/public_html"
rm -rf ${DEST_DIR}
mkdir -p ${DEST_DIR}
svn export --username=asdf --password=asdf ${SOURCE} ${DEST_DIR}
Im Skript kannst du Statusmeldungen mit

Code: Alles auswählen

logger -t repositoryname_postcommit -- Meldungstext
ausgebebe lassen. Damit du weißt, wo es Probleme gibt.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Freitag 15. Juni 2007, 10:15

Hallo Gerold!

Ich habe nur eine schlechte Lösung. Die ist nur dann ratsam, wenn du lokal entwickelst und erst dann, wenn die Website lokal funktioniert, diese mit "commit" auf den Server schiebst.
Ist eigentlich meine normale Vorgehensweise ;)
Im post-commit-Skript könntest du zuerst den Zielordner löschen und dann mit "svn export" den Inhalt des Trunk-Ordners in den neu erstellten Zielordner exportieren.
Ist ne schöne Idee, Danke! --> Werde es heute Abend mal ausprobieren.


MfG EnTeQuAk
lunar

Freitag 15. Juni 2007, 11:40

gerold hat geschrieben:
EnTeQuAk hat geschrieben:post-commit script [...] das meine Website vom Subversion Repository in das "richtige" Verzeichnis kopiert.
So z.B.:

Code: Alles auswählen

SOURCE="/home/gerold/svn/home_gerold/trunk"
DEST_DIR="/home/gerold/public_html"
rm -rf ${DEST_DIR}
mkdir -p ${DEST_DIR}
svn export --username=asdf --password=asdf ${SOURCE} ${DEST_DIR}
Im Skript kannst du Statusmeldungen mit

Code: Alles auswählen

logger -t repositoryname_postcommit -- Meldungstext
ausgebebe lassen. Damit du weißt, wo es Probleme gibt.
Man kann alternativ auch einmal händisch ein initialen Checkout in DEST_DIR machen und dann nur noch mit "svn update" arbeiten, das spart das Hantieren mit den Ordnern.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 15. Juni 2007, 11:57

lunar hat geschrieben:Man kann alternativ auch einmal händisch ein initialen Checkout in DEST_DIR machen und dann nur noch mit "svn update" arbeiten, das spart das Hantieren mit den Ordnern.
Hallo lunar!

- Damit werden aber auch alle ".svn"-Ordner und -Unterordner erstellt. Das ist kein zu unterschätzender Overhead.
- Ein Update versucht Dateien zu "mergen". Und wenn es Konflikte gibt, werden die nicht automatisch behoben. (sollte aber nicht passieren)
- *.pyc- und *.pyo-Dateien werden nicht automatisch gelöscht.

Das sind die Nachteile die mir auf die Schnelle einfallen. Aber prinzipiell funktioniert das natürlich auch.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
lunar

Freitag 15. Juni 2007, 12:26

gerold hat geschrieben:
lunar hat geschrieben:Man kann alternativ auch einmal händisch ein initialen Checkout in DEST_DIR machen und dann nur noch mit "svn update" arbeiten, das spart das Hantieren mit den Ordnern.
- Damit werden aber auch alle ".svn"-Ordner und -Unterordner erstellt. Das ist kein zu unterschätzender Overhead.
Ok, das könnte man jetzt noch "benchmarken" ;)
- Ein Update versucht Dateien zu "mergen". Und wenn es Konflikte gibt, werden die nicht automatisch behoben. (sollte aber nicht passieren)
Eben... man bearbeitet die Website ja nur in der lokalen Arbeitskopie und nicht auf dem Webserver, wo sowieso keine Emacs/Vim installiert ist ;)
- *.pyc- und *.pyo-Dateien werden nicht automatisch gelöscht.
Da Berlios.de sowieso kein Python für die Websites unterstützt (sondern nur hässliches PHP), ist das auch egal ;)
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Freitag 15. Juni 2007, 12:28

[OT]will mal einer Wissen warum der Titel kürzer als normal ist? Weil es von phpbb SGML escaped gespeichert wird. Toll nicht? Ich frag mich ob wir mal &quo oder sowas sehen werden weil das Drecksteil die Input Länge falsch misst :roll: [/OT]
TUFKAB – the user formerly known as blackbird
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Freitag 15. Juni 2007, 12:31

Also Gerolds Lösung funktioniert einwandfrei!

Danke!
lunar hat geschrieben: Da Berlios.de sowieso kein Python für die Websites unterstützt (sondern nur hässliches PHP), ist das auch egal
Mir ging es eher um statische Seiten. :)
Bin nicht so ein "das muss dynamisch sein" Freak :)
lunar hat geschrieben: Eben... man bearbeitet die Website ja nur in der lokalen Arbeitskopie und nicht auf dem Webserver, wo sowieso keine Emacs/Vim installiert ist
Also auf meinem Webserver is vim installiert. Man muss ja seine Konfiguration bearbeiten. Oder wie machst du das? *g*
lunar hat geschrieben:Ok, das könnte man jetzt noch "benchmarken"
Ich weiß, das mein FTP-Programm knapp 12 Sekunden länger braucht mit den SVN-Ordner, als ohne. Reicht mir als benchmark (auch, wenn das vermutlich auf meiner Powermaschiene von Server eh nichts ausmacht :) )


MFG EnTeQuak
lunar

Freitag 15. Juni 2007, 13:35

EnTeQuAk hat geschrieben:Also Gerolds Lösung funktioniert einwandfrei!

Danke!
lunar hat geschrieben: Da Berlios.de sowieso kein Python für die Websites unterstützt (sondern nur hässliches PHP), ist das auch egal
Mir ging es eher um statische Seiten. :)
Bin nicht so ein "das muss dynamisch sein" Freak :)
Dynamische Seiten sind schon nett, aber nicht mit PHP ;) Glücklicherweise bin ich bei dem betreffenden Projekt nur für den (Python)-Programmcode zuständig und nicht für die Website. Ansonsten halte ich es auch eher mit statischen Seiten (wenn kein Python angeboten wird), PHP dient dann nur zum includen, damit man Header, Footer und Navigationsmenü nicht immer pasten muss.

[ot]
Bei PHP, Python und dynamischen Seiten muss ich gerade wieder an das Django-Tutorial denken .... :D
[/qt]
lunar hat geschrieben: Eben... man bearbeitet die Website ja nur in der lokalen Arbeitskopie und nicht auf dem Webserver, wo sowieso keine Emacs/Vim installiert ist
Also auf meinem Webserver is vim installiert. Man muss ja seine Konfiguration bearbeiten. Oder wie machst du das? *g*
Das ist nicht mein Webserver, sondern der von Berlios.de. Ich bin nicht so reich, als das ich mir einen Webserver leisten könnte ;) Wie die ihre Konfiguration bearbeiten, weiß ich nicht, und ehrlich gesagt will ich es auch gar nicht mehr wissen, seit ich weiß, dass schily da im Adminteam sitzt.

Ansonsten würde ich wahrscheinlich eher eine Kopie der relevanten Dateien auf meinem Rechner halten, und bei Bedarf rsyncen. Zum einen hab ich dann meinen perfekt konfigurierten Emacs, zum anderen X, was imho schöner aussieht als ein blödes Terminal ;) Kleine Änderungen kann man auf dem Server auch per nano oder vi vornehmen, da muss kein "echter" Editor installiert sein ;)
Antworten