Markus Bauer: CVS zur Verwaltung von Webseiten

Hallo!

Gibt es ein nettes kleines Tutorial oder so zum Thema "Webseitenverwaltung mit CVS"?

Ich habe schon privat einen CVS Server eingerichtet und verwalte Programmcode damit.
In der Firma ist er zwar schon eingerichtet, aber irgendwie gibts Probleme beim "letzten Schritt":

  • Grundsätzlich arbeiten schon viele Leute gemeinsam an einem Projekt nur meistens geschieht das nicht zur selben Zeit.

  • Bis jetzt logge ich mich mit putty am Server ein und arbeite dort mit mcedit. Ich muss einfach speichern und sofort probieren können. Deshalb wundert es mich irgendwie, wie sich CVS so sehr für Webseiten eignen sollte, denn die kann ich offline ja nicht testen

  • Unsere Webapplikationen sind abhängig von sehr vielen externen Komponenten und "common files", die von vielen Projekten gemeinsam genutzt werden (und somit einfach inkludiert werden).

Im Prinzip arbeite ich aber an den "Echtdaten" was schon lange ein Problem ist, es wäre wirklich nett, wenn man die Unterschiede unsw mitverfolgen könnte, dass die Fragerei "weisst du noch, wie/ob/wann du das und das gemacht hast" wegfällt.

Aber abgesehen von diesem Vorteil kommt mir CVS absolut ungeeignet vor für Webprojekte (ausser plain HTML).

Wie sieht ihr das und wie verwaltet ihr eure (größeren) Projekte?
Lokaler Webserver? Zweiter virtueller Server?

Dadurch, dass die meisten Projekte schon sehr alt und umfangreich sind, ist es eben etwas schwierig, sie wo anders hinzukopieren oder gar auf einen anderen Server, eben wegen der Abhängigkeiten...

Vielen Dank für eure Kommentare

Markus

  1. hallo,

    ich habe zwar kein grosses produktivsystem am laufen, aber bei mir geht auch alles über eine versionsverwaltung. nebenbei habe ich in einer firma gearbeitet, bei der ich mir diesbezüglich etwas knowhow abgucken konnte.

    die bessere versionsverwaltung* heisst subversion und ist lokal äusserst einfach auszuprobieren. wenn du mit windows arbeitest, lade dir tortoise svn runter, installiere, fertig. repository erstellen, importieren, auschecken und dann kann die arbeit beginnen. in zukunft kannst du dann immer deine commits machen und änderungen einchecken ... soweit warst du wohl schon.

    besser geht dat alles, wenn du nicht den eingebauten minimalserver benutzt, sondern subversion im apache (2 nötig) als webdav modul einbindest. unter windows (als testserver reicht das ja) passiert das einbinden automatisch bei der installation des subversion. nach anpassen der zugriffsdatei und des repository pfades solltest du nun auch auf deinen svn-server via http(s) zugreifen können. wenn du das geschafft hast, wird subversion die änderungen von dir und deinen leuten aufnehmen und in den meisten fällen problemlos zusammenlegen. jeder entwickler muss natürlich regelmässig seine arbeitskopie updaten, um andere änderungen zu bekommen.

    einen grossen vorteil hast du nun schonmal erreicht: alle leute arbeiten an der gleichen version. nun gibts noch kleine schmankerl wie zb. die hooks. da dein www-pfad des repositorys nicht der www-root des apache ist, du aber deine änderungen nach dem commit sehen willst, richtest du dir einen post-commit-hook ein. dieser macht nichts weiter, als ein automatisches update auf dein www-root für den testserver. also hast du nach jedem commit jeder person immer einen aktuellen testserver.

    wegen der einstellungsdateien: man kann dateien/verzeichnisse ausschliessen. natürlich muss die jeder für sich einmal einrichten, ganauso will das auch dein testserver haben. das ist ja aber ein einmaliger aufwand.

    hoffe das alles hat dir einen kleinen einblcik gegeben, sicherlich musst du dir das svn-handbuch über die feiertage mal ansehen, aber glaube mir, das lohnt sich :)

    andreas

    * warum?

    • svn erkennt automatisch am mimetype oder anhand vorgegebener liste, ob die datei ein binary oder text/plain ist
    • verschieben innerhalb des rep. möglich
    • mit dem dateisystem fsfs für das repository sind diese 'hot-backupable', also einfach brennbar und sogar von cd auscheckbar
  2. Hallo!

    Nabend!

    Gibt es ein nettes kleines Tutorial oder so zum Thema "Webseitenverwaltung mit CVS"?

    Wieso denn speziell Webseitenverwaltung? Ich verwalte mit CVS ein komplettes SourceForge-Projekt inklusive Sourcecode, Dokumentation und Webauftritt.

    In der Firma ist er zwar schon eingerichtet, aber irgendwie gibts Probleme beim "letzten Schritt":

    Lass mal sehen.

    • Grundsätzlich arbeiten schon viele Leute gemeinsam an einem Projekt nur meistens geschieht das nicht zur selben Zeit.

    Das sollte doch kein Problem darstellen, oder?

    • Bis jetzt logge ich mich mit putty am Server ein und arbeite dort mit mcedit. Ich muss einfach speichern und sofort probieren können. Deshalb wundert es mich irgendwie, wie sich CVS so sehr für Webseiten eignen sollte, denn die kann ich offline ja nicht testen

    Ich glaube, da liegt ein Missverständnis vor. Du kannst die Änderungen lokal natürlich Speichern und Ausprobieren, gar kein Thema. Falls es sich dabei um dynamische Inhalte handelt, sollte dein Verzeichnis irgendwie vom Webserver (und Perl/PHP/ASP/...) erreicht werden können. Mit cvs commit'' kannst du dann nach einem erfolgreichen Test die Sachen hochladen und unter der Docroot des Webservers mit cvs update'' das Verzeichnis auf den aktuellen Stand bringen.

    • Unsere Webapplikationen sind abhängig von sehr vielen externen Komponenten und "common files", die von vielen Projekten gemeinsam genutzt werden (und somit einfach inkludiert werden).

    Hm, da wäre es sicher sinnvoll, die entsprechenden Verzeichnisse per NFS lokal zum Testen zu mounten, oder?

    Im Prinzip arbeite ich aber an den "Echtdaten" was schon lange ein Problem ist, es wäre wirklich nett, wenn man die Unterschiede unsw mitverfolgen könnte, dass die Fragerei "weisst du noch, wie/ob/wann du das und das gemacht hast" wegfällt.

    Genau dafür hat man u.a. CVS. Je nachdem kann es aber sinnvoll sein, zum Testen einen separaten Server aufzusetzen, der sich jeden Tag (oder öfter) die entsprechenden Daten (Includes, Datenbanken, ...) vom echten Server kopiert, so dass man nichts kaputt machen kann.

    Aber abgesehen von diesem Vorteil kommt mir CVS absolut ungeeignet vor für Webprojekte (ausser plain HTML).

    Wieso? Es kommt nur darauf an, wie man es anstellt.

    Wie sieht ihr das und wie verwaltet ihr eure (größeren) Projekte?
    Lokaler Webserver?

    Das sowieso. Zum Testen oft/meistens unverzichtbar, sogar mit kompletter Kopie der Datenbank, damit irgendwelcher alpha-Code nicht den produktiven Server lahmlegt.

    Zweiter virtueller Server?

    Auch ne nette Idee, aber das Datenbank-Problem bleibt (außer man setzt noch nen zweiten *SQL-Server auf).

    Dadurch, dass die meisten Projekte schon sehr alt und umfangreich sind, ist es eben etwas schwierig, sie wo anders hinzukopieren oder gar auf einen anderen Server, eben wegen der Abhängigkeiten...

    Dann musst du wohl oder übel die Abhängigkeiten mitkopieren oder dazumounten.

    Vielen Dank für eure Kommentare

    Markus

    Bitte schön, Robert