SVN für PHP-Projekt - Verständnisfrage
menschlein
- php
Guten Abend SelfHTMLer,
ich möchte ein kleineres PHP-"Projekt" beginnen und bin bei der Vorplanung auf SVN gestoßen. Bisher hatte ich nie wirklich geordnet ein "Projekt" gestartet sondern einfach begonnen diese und jene Klasse zu schreiben und es innerhalb meines "Coding-Stils" relativ einheitlich zu kommentieren.
Nun wenn ich SVN richtig verstanden habe, kann ich es für ein kleineres Projekt gut gebrauchen. Zum ersten liefert es mir aussagekräftige Versionsnummern bzw. Revisionsnummern und ich kann anhand dieser gut Updates für den Kunde verfügbar machen.
Aber meine Überlegungen scheitern an der konkreten Vorstellung, wie das mit SVN läuft.
Ich entwickle auf einem Hausinternen-Server mein (PHP-)Projekt innerhalb einer ordentlichen Verzeichnisstruktur.
Dann muss ich auf diesem Hausinternen-Server SVN installieren.
Und wie läuft das dann genau?
Nach jeder Änderung muss ich SVN irgendwie aufrufen und dieses erstellt mir dieses SVN-Repository.
Wie kann ich daraus dann für Kunden Updates generieren, die auf anderen Servern liegen?
Leider finde ich keine Infos zu dem Grundprinzip und wie ich SVN wirklich einsetztenn kann.
Gruß
echo $begrüßung;
Nach jeder Änderung muss ich SVN irgendwie aufrufen und dieses erstellt mir dieses SVN-Repository.
Das Repository wird einmalig angelegt. Zu Beginn einer Sitzung updatest du das Projekt (vom Repository) in dein Arbeitsverzeichnis und machst deine Änderungen. Nach getaner Arbeit oder auch nach wichtigen Teilschritten comittest du den Code (in das Repository). Das Updaten musst du natürlich nicht machen, wenn du nur der einzige Bearbeiter bist. Dann reicht nur das Commit nach der Arbeit. Überlege dir bei den Kommentaren gut, welcher Text dir später einmal nützlich sein kann, wenn du einen bestimmten Zustand wiederfinden möchtest.
Es gibt IDEs oder Zusätze zu IDEs, die dir helfen, gleich aus der Entwicklungsumgebung das SVN-Handling zu erledigen.
Wie kann ich daraus dann für Kunden Updates generieren, die auf anderen Servern liegen?
Durch Exportieren bekommst du eine Version ohne .svn-Verzeichnisse
Leider finde ich keine Infos zu dem Grundprinzip und wie ich SVN wirklich einsetztenn kann.
Dazu gibt es aber Bücher.
echo "$verabschiedung $name";
Hi,
Überlege dir bei den Kommentaren gut, welcher Text dir später einmal nützlich sein kann, wenn du einen bestimmten Zustand wiederfinden möchtest.
ergänzend: Du kannst bestimmte Versionsstände markieren, ihnen gewissermaßen Namen (oder auch Versionsnummern) geben. Das vereinfacht es, stabile Stände zu finden.
Es gibt IDEs oder Zusätze zu IDEs, die dir helfen, gleich aus der Entwicklungsumgebung das SVN-Handling zu erledigen.
Beispielsweise TortoiseSVN, welches sich in den Windows-Explorer einklinkt und Dir dort nicht nur die geänderten Dateien erkenntlich macht, sondern über das Kontextmenü die wichtigsten Kommandos leicht zugänglich gestaltet. Beispiel: Rechtsklick auf das Projektverzeichnis, "Commit", Änderung beschreiben, einzucheckende Dateien auswählen (bzw. Vorauswahl beibehalten), OK klicken, fertig.
Wie kann ich daraus dann für Kunden Updates generieren, die auf anderen Servern liegen?
Falls Du dabei an eine ausführbare Datei o.ä. denkst, die Du dem Kunden gibst und mit der er leicht ein Update installieren kann: Das geht meines Wissens nicht. Du könntest ihm allerdings den Zugang zu dem (bzw. einem - das ist zwar nicht Sinn der Sache, aber durchaus möglich) SVN-Repository gewähren, auf dem der zu installierende Versionsstand verfügbar ist, so dass er ein SVN-Update durchführen kann.
Durch Exportieren bekommst du eine Version ohne .svn-Verzeichnisse
Oder dies :-)
Cheatah
Beispielsweise TortoiseSVN,
Wobei es dabei zu erwähnen ist, dass TortoiseSVN bei einem einzelnen Entwickler auch ohne eigenen SVN-Server betrieben werden kann. Ist bei einigen Anwendungen sicher ein Vorteil.
Hallo,
gibt es auch andere, die dies können?
Gruß
gibt es auch andere, die dies können?
Da du, trotz Aufforderung, immer noch nicht sagst, welches Betriebssystem du einsetzt, werd ich mich dazu nicht mehr äussern. Wenn du keine Hilfe willst, kriegst du auch keine.
Ich entwickle auf einem Hausinternen-Server mein (PHP-)Projekt innerhalb einer ordentlichen Verzeichnisstruktur.
Ja, aber davor erzeugst du ein Repositiory
Dieses Repository enthält alle Dateien und Ordner.
Du legst dir dann auf deinem Arbeitsrechner eine Arbeitskopie (Workingcopy) an, die du veränderst. Wenn die Verändferungen abgeschlossen sind, aktualisierst das Repository (Commit) und SVN aktualisiert die Daten, schreibt ein Log, Archiviert die alten >Daten und erhöht die Versionsnummer.
Dann muss ich auf diesem Hausinternen-Server SVN installieren.
Nicht unbedingt. Kann auch im Internet sein als Beispiel. Auch auf einem beliebigen anderen Rechner innerhalb des Netzwerkes. Es gibt auch Hoster, die SVN-Server anbieten.
Nach jeder Änderung muss ich SVN irgendwie aufrufen und dieses erstellt mir dieses SVN-Repository.
Nein, es wird nur aktualisiert. Alle alten Versionen bleiben erhalten.
Wie kann ich daraus dann für Kunden Updates generieren, die auf anderen Servern liegen?
Für das Repository kann es nur einen Server geben, alles andere sind Arbeitskopien. Und aus dem Repository kannst du jede Version (sogar jede Version Datei) exportieren.
Leider finde ich keine Infos zu dem Grundprinzip und wie ich SVN wirklich einsetztenn kann.
Google kennst du? Such mal nach nem PDF mit Namen cs104-Einführung-svn.pdf
Und es gibt zigtausende Tutorials zum Thema, davon viele auch in Deutsch.
Da du aber dummerweise nicht erzählst, welches Betriebssystem du nutzt, ist es schlichtweg unmöglich, dir näher zu erklären wie die Installation und Konfiguration abläuft.
Hallo
Google kennst du? Such mal nach nem PDF mit Namen cs104-Einführung-svn.pdf
Naja, mit "ue statt "ü" (cs104-Einfuehrung-svn.pdf) klappt's. :-)
Ich habe nach kurzer Suche auf dieser Seite: http://informatik.unibas.ch/lehre/fs08/cs104/cs104.html unter "Vorlesungsunterlagen->Kap. 1->Einführung in SVN" eine Quelle gefunden.
Tschö, Auge
Naja, mit "ue statt "ü" (cs104-Einfuehrung-svn.pdf) klappt's. :-)
Dann wurde das kürzlich geändert ;)
Als ich das Dokument runtergeladen hab (02.05.08) wurde es noch mit ü geschrieben.
Ich finde aber trotzdem, es ist zum Thema SVN ein gutes Dokument und hilfreich für jeden, der sich damit befassen will.
Hallo
Naja, mit "ue statt "ü" (cs104-Einfuehrung-svn.pdf) klappt's. :-)
Dann wurde das kürzlich geändert ;)
Als ich das Dokument runtergeladen hab (02.05.08) wurde es noch mit ü geschrieben.
Mag ja auch stimmen, aber mit ü habe ich es via Google(de) nicht gefunden. Kann aber auch daran liegen, dass ich per openSearch-Plugin standardmäßig nach Ergebnissen in deutscher Sprache suchen lasse. Weiß ich nicht mehr so genau, ist ja schon fast 24 Stunden her. ;-)
Tschö, Auge
Mag ja auch stimmen, aber mit ü habe ich es via Google(de) nicht gefunden.
Ich muss mich ja schämen. Da liegt ds PDF ständig auf meinem Gnome-Desktop und ich seh jetzt erst, da ist es auch mit "ue" geschrieben ..... Ich glaub ich werd alt.
Ich werd morgen erstmal nen Platz im Altenheim bestellen und ne Grabstelle aussuchen.
Hallo,
ich verwende als SVN-Client TortoiseSVN. Damit kannst du auch ganz einfach ein Repository anlegen, in das Tortoise dann deine Files ein- bzw. auschecked.
Dazu gibts übrigens auch noch ein tolles Handbuch, indem das alles sehr genau und verständlich erklärt ist.
Zu erwähnen wäre noch, dass du verschiedene Ordner hast bzw. in deinem Repository anlegen solltest. Der Ordner trunk enthält sozusagen den Stamm. Dies ist der Hauptentwicklungszweig. Im Ordner branches hältst du Versionsstände, die du ausgeliefert hast - z.B. an den Kunden. Findet der Kunde einen Fehler oder wünscht weitere Funktionen, kannst du an diesem branch weiterarbeiten ohne deinen Stamm zu beeinflussen. Außerdem dient das branches-Verzeichnis auch für Abzweigungen vom Hauptstamm, um mal neue Funktionen ausprobieren, die du dann später wieder mit dem Hauptstamm zusammenführen kannst. Als drittes Verzeichnis wäre noch tags zu erwähnen. Hier werden Versionen gespeichert, die du nicht mehr änderst.
Aber das steht auch oben in dem Handbuch ...
Gruß,
Leeloo