Subversion
Guggug
- software
Hallo
nach unendlichen Anläufen habe ich es nun endlich hinbekommen, Apache + PHP + MySQL + Subversion zu installieren und ohne Fehlermeldungen laufen zu lassen.
Ein Repository habe ich schon angelegt.
Ich möchte jetzt ein bereits existierendes Projekt in dieses Repository einschleusen und unter Versionskontrolle stellen. Da kann ich natürlich nicht die Dateien einfach reinkopieren, sondern muss die irgendwie mit einem svn-Befehl hineinladen.
Ich finde in Anleitungen zwar Anweisungen zum hineinladen von Dateien aus der lokalen Arbeitskopie, doch da kann nur ein einziger Pfad angegeben werden, ich bräuchte natürlich zwei. Der Befehl heißt "import".
Das ganze läuft per Subclipse (Erweiterung von Eclipse). Doch da kann ich nur Repositories anzeigen lassen, aber nicht hochladen, sprich einen checkin, ich kann allerdings nur einen Checkout machen. Hat da noch jemand einen Tipp?
Und das mit der Server-/Clientseite habe ich auch noch nicht so ganz begriffen. Ich sehe sehr oft, dass die Clientseite ebenfalls Linux ist, was bei mir/uns in der Firma natürlich nicht der Fall ist (schade eigentlich, aber der Chef möchte dass alle PCs gleich sind, um Portabilität zu gewährleisten). Mir kommt es so vor, als ob die Schreiber meinen, die lokale Arbeitskopie liege ebenfalls auf dem Server. Natürlich möchte ich das nicht.
Ich habe root-Zugriff auf den Server, das wäre nicht das Problem, nur ich möchten wir beide Programmierer in der Firma gerne beide Subclipse benutzen, und nur ich habe Root-Zugriff (und das Passwort gebe ich natürlich nicht her). Kann mich da vielleicht jemand aufklären?
Ich hoffe meine Fragen sind nicht zu speziell und gehen nicht zu weit. Ich hoffe ebenfalls dass sich hier jemand schon mit Subversion und Subclipse auseinandergesetzt hat oder vielleicht sogar benutzt.
Ich würde mich auch über einen Link freuen, der meine Fragen klärt. Bin auch des Englischen mächtig, Englische Anleitungen sind also auch möglich ;)
Viele Grüße und danke für eure Antworten schon mal im Voraus
Guggug
Hi,
Ich finde in Anleitungen zwar Anweisungen zum hineinladen von Dateien aus der lokalen Arbeitskopie, doch da kann nur ein einziger Pfad angegeben werden, ich bräuchte natürlich zwei. Der Befehl heißt "import".
wieso ist das natürlich?
Abgesehen davon: Zwar erstelle ich weitaus seltener ein neues Projekt, als ich an einem bestehenden arbeite, aber bisher hatte ich nie Probleme damit, den entsprechenden Befehl zu finden und zu verwenden. Möglicherweise wird Dir (wenn ich es richtig verstehe, dass Du unter Windows arbeitest) TortoiseSVN helfen.
Und das mit der Server-/Clientseite habe ich auch noch nicht so ganz begriffen. Ich sehe sehr oft, dass die Clientseite ebenfalls Linux ist, was bei mir/uns in der Firma natürlich nicht der Fall ist (schade eigentlich, aber der Chef möchte dass alle PCs gleich sind, um Portabilität zu gewährleisten). Mir kommt es so vor, als ob die Schreiber meinen, die lokale Arbeitskopie liege ebenfalls auf dem Server.
Nein, es ist einfach so, dass die Autoren von Open Source Software eine Affinität zu Linux u.ä. haben, also auch bei der (allzu selten vorhandenen - siehe Sourceforge) Dokumentation den Fokus auf dieses Betriebssystem setzen. Das hat aber nichts damit zu tun, ob Client und Server der selbe Rechner sind.
Ich habe root-Zugriff auf den Server, das wäre nicht das Problem, nur ich möchten wir beide Programmierer in der Firma gerne beide Subclipse benutzen, und nur ich habe Root-Zugriff (und das Passwort gebe ich natürlich nicht her). Kann mich da vielleicht jemand aufklären?
Subclipse ist mittlerweile ziemlich ausgereift, es integriert SVN recht gut in die Eclipse-Mechanismen. Ob man damit ein neues Projekt einchecken kann weiß ich nicht, da ich es noch nie probiert habe.
Ich hoffe ebenfalls dass sich hier jemand schon mit Subversion und Subclipse auseinandergesetzt hat oder vielleicht sogar benutzt.
Da dürfte es hier mehrere geben, denke ich ;-)
Ich würde mich auch über einen Link freuen, der meine Fragen klärt.
Sorry, ich kann Dir nur sagen, dass es eigentlich kein Problem geben dürfte. Teilweise liegt das aber auch daran, dass ich jetzt einfach keine Lust mehr habe, selbst in die Doku zu schauen ... *gähn* Ich bitte um Verständnis :-)
Cheatah
Hallo,
Subclipse ist mittlerweile ziemlich ausgereift,
Nein, ist es nicht. Die Integration beinhaltet ungefähr das Minimum
von dem, was ich erwarten würde. Das Plugin selbst ist recht buggy und
verhält sich recht komisch. Vgl. den Thread in de.comp.lang.java.
Das intergrierte CVS-Plugin fühlt sich da weitaus besser an. Das mag
sicher auch damit zusammenhängen, daß CVS weniger als Subversion kann
und daher die Einschränkungen, die Subclipse meiner Ansicht nach
besitzt, primär darin bestehen, gute Features von Subversion, die es
so bei CVS nicht gibt, nicht unterstützt.
Ob man damit ein neues Projekt einchecken kann weiß ich nicht, da ich es noch nie probiert habe.
Man kann es wie CVS-Projekte auch über das Kontextmenü des Projekts
einchecken. Dort "Team" und dann "Share Project..." auswählen. Der
Rest sollte annähernd selbsterklärend sein.
Gruß
Slyh
Hey Cheatah,
Ich finde in Anleitungen zwar Anweisungen zum hineinladen von Dateien aus der lokalen Arbeitskopie, doch da kann nur ein einziger Pfad angegeben werden, ich bräuchte natürlich zwei. Der Befehl heißt "import".
wieso ist das natürlich?
Nun ja, ich bräuchte einen Parameter, der den Pfad zu den Dateien die hochgeladen werden sollen beschreibt, und einen Pfad der das Repository beschreibt. "checkin" habe ich noch nie mit 2 Pfaden gesehen, immer nur mit einem einzigen, und einem Parameter der den User angegeben hat.
Angenommen, ich komme noch irgendwann an den Befehl (den du mir übrigens noch nicht gegeben hast obwohl du ihn bestimmt kennst), müsste ich dann vom Server aus importieren oder vom Client aus exportieren?
Abgesehen davon: Zwar erstelle ich weitaus seltener ein neues Projekt, als ich an einem bestehenden arbeite, aber bisher hatte ich nie Probleme damit, den entsprechenden Befehl zu finden und zu verwenden. Möglicherweise wird Dir (wenn ich es richtig verstehe, dass Du unter Windows arbeitest) TortoiseSVN helfen.
Ich werde in Zukunft mit Eclipse arbeiten, was natürlich, mit dem Subclipse-Plugin, seine Vorteile hat. Es wäre viel zu umständlich auch noch ein anderes Tool zu installieren, in den bestimmten Ordner zu gehen und von dort die veränderten Dateien auszufiltern und hochzuladen.
Ich möchte das, wenn möglich, schon mit Eclipse/Subclipse machen.
Mir kommt es so vor, als ob die Schreiber meinen, die lokale Arbeitskopie liege ebenfalls auf dem Server.
Nein, es ist einfach so, dass die Autoren von Open Source Software eine Affinität zu Linux u.ä. haben, also auch bei der (allzu selten vorhandenen - siehe Sourceforge) Dokumentation den Fokus auf dieses Betriebssystem setzen. Das hat aber nichts damit zu tun, ob Client und Server der selbe Rechner sind.
Okay, gut.
Ich habe root-Zugriff auf den Server, das wäre nicht das Problem, nur ich möchten wir beide Programmierer in der Firma gerne beide Subclipse benutzen, und nur ich habe Root-Zugriff (und das Passwort gebe ich natürlich nicht her). Kann mich da vielleicht jemand aufklären?
Subclipse ist mittlerweile ziemlich ausgereift, es integriert SVN recht gut in die Eclipse-Mechanismen. Ob man damit ein neues Projekt einchecken kann weiß ich nicht, da ich es noch nie probiert habe.
Gut, dann gebe ich die Sache weiter an die anderen Subversion-Benutzer hier im Forum.
Ich hoffe ebenfalls dass sich hier jemand schon mit Subversion und Subclipse auseinandergesetzt hat oder vielleicht sogar benutzt.
Da dürfte es hier mehrere geben, denke ich ;-)
Dann bin ich hier also richtig gelandet ;)
Ich würde mich auch über einen Link freuen, der meine Fragen klärt.
Sorry, ich kann Dir nur sagen, dass es eigentlich kein Problem geben dürfte.
Doch, mein Problem ist die Einschleusung des existierenden Projekts in das Repository und dass es dafür keinen geeigneten Befehl zu geben scheint. Jedenfalls nicht laut dem Buch hier.
Teilweise liegt das aber auch daran, dass ich jetzt einfach keine Lust mehr habe, selbst in die Doku zu schauen ... *gähn* Ich bitte um Verständnis :-)
Na klar, wenn ich morgen wieder im Büro bin schau ich hier eh wieder rein, und bis dahin gibt es bestimmt auch schon neue Antworten.
Viele Grüße
Guggug
Hallo,
Nun ja, ich bräuchte einen Parameter, der den Pfad zu den Dateien die hochgeladen werden sollen beschreibt, und einen Pfad der das Repository beschreibt. "checkin" habe ich noch nie mit 2 Pfaden gesehen, immer nur mit einem einzigen, und einem Parameter der den User angegeben hat.
Angenommen, ich komme noch irgendwann an den Befehl (den du mir übrigens noch nicht gegeben hast obwohl du ihn bestimmt kennst), müsste ich dann vom Server aus importieren oder vom Client aus exportieren?
Vom Client aus.
http://www.germane-software.com/~ser/R_n_R/subversion.html
Der Abschnitt "General Usage". Kurz zum Ablauf: Du erstellst einen neuen Baum mit den Unterverzeichnissen "branch, trunk, tags". Den importierst Du; ja, zu diesem Zeitpunkt ist dieser Baum *leer*. (D.h. Du laesst den "mv" Befehl weg!).
Dann checkst Du ihn an anderer Stelle aus. Dann weisst Du schon, dass Dein Repository funktioniert und 'co' geht. In diesen ausgecheckten Baum kopierst Du Deine Dateien und fuegst Sie dem Projekt hinzu. Dann checkst Du wieder ein und hast Dein Projekt. Wahlweise kannst Du jetzt an einer dritten Stelle den Baum nochmals auschecken, um zu testen ob das alles auch geklappt hat -- den urspruenglichen Baum (der nicht unter Kontrolle steht), kannst Du loeschen; zumindest wuerde ich ihn packen, damit Du nicht aus Versehen noch an dem was aenderst.
Und ja, ich bin paranoid, was meine Daten angeht -- ein leerer Checkin geht sehr schnell und kostet auch auf dme Server fast keinen Platz, spart mir aber u.U. sehr viel Aerger.
Ich werde in Zukunft mit Eclipse arbeiten, was natürlich, mit dem Subclipse-Plugin, seine Vorteile hat. Es wäre viel zu umständlich auch noch ein anderes Tool zu installieren, in den bestimmten Ordner zu gehen und von dort die veränderten Dateien auszufiltern und hochzuladen.
Du hast anscheinend noch nie mit TortoiseSVN gearbeitet. Es ist eines von vielleicht 5 Programmen, die ich gerne unter Linux haette.
Mir kommt es so vor, als ob die Schreiber meinen, die lokale Arbeitskopie liege ebenfalls auf dem Server.
Solltest Du noch Fragen haben, gibt es online das "svnbook"; wenn Du Papier lieber magst, empfehle ich "Pragmatic Version Control Using Subversion" -- das behandelt allerdings die Serverseite so gut wie gar nicht.
Gruss
Thomas
Hi
Du hast mir sehr geholfen, ich bin jetzt so weit gekommen, dass die Dateien auf dem Server sind. Und das mit TortoiseSVN, Subclipse ist da ein wenig umständlich, das habe ich auch gemerkt.
Ich kann die Dateien jetzt auch sehen. Nur leider werden sie mir im Klartext ausgegeben, nicht interpretiert, obwohl der PHP-Interpreter installiert ist.
Es muss demnach an der httpd.conf liegen. In der habe ich folgende Einträge:
LoadModule php5_module modules/libphp5.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .phtml
<Location /meinrep>
DAV svn
SVNPath /usr/local/apache2/htdocs/reps/meinrep
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /usr/local/apache2/svn-users
Require valid-user
</Location>
Also eigentlich müsste doch der PHP Interpreter auch auf mein Repository greifen, aber warum macht er das nicht? Vielleicht weil /meinrep eine Revision woandershin ist?
Viele Grüße
Und vielen Dank soweit
Guggug
Hallo Guggug
... Es wäre viel zu umständlich auch noch ein anderes Tool zu installieren, in den bestimmten Ordner zu gehen und von dort die veränderten Dateien auszufiltern und hochzuladen.
Die veränderten Dateien musst _du_ doch nicht herausfiltern.
Einfach im Explorer, rechtsklick auf den Ordner, der die Arbeitskopie
enthält (wahlweise auch auf einen Unterordner oder eine einzelne Datei).
Im Menü SVN-Commit anklicken, und alle geänderten oder hinzugefügten Dateien
werden aufgelistet, Message schreiben, Häkchen bei den Dateien, die
eventuell noch nicht eingecheckt werden sollen entfernen bzw. bei neu
hizugefügten setzen. OK klicken.
Außerdem kannst du deine Arbeitskopie mit jedem beliebigen Tool bearbeiten,
bist also auf keine bestimmte Entwicklingsumgebung angewiesen.
Beim Update (Rechtsklick, SVN-Update) bekommst du eine Liste aller Commits,
seit deinem letzten Update und kannst dir für jedes anzeigen lassen, welche
Dateien dabei geändert wurden, bis dahin, dir das Diff jeder einzelnen
anzeigen zu lassen.
Auf Wiederlesen
Detlef