2010-04-16 6 views
5

Hier ist, was ich versuche zu tun. Ich habe ein Projekt in/var/www/project. Ich würde gerne Svn für dieses Projekt verwenden. Ich habe zu diesem Zweck SVN auf meinem Debian-Server installiert, aber ich verstehe nicht, wie man es benutzt und das Googeln hat mich noch mehr verwirrt. Ich möchte ein Repository/var/svn/project erstellen und verwenden. Nach einigen Änderungen möchte ich den gesamten Code zurück nach/var/www/project exportieren. Hier ist, was ich getan habe:Subversion (svn) Anfängerfragen

  • i ein Repository erstellt haben: svnadmin create/var/svn/project
  • ich den Code importiert haben: svn import/var/www/Projektdatei:/// var/svn/project -m "Initial import"
  • ich habe den Code mit "Versionen" Client ausgecheckt

Alles scheint gut zu funktionieren, aber ... Wenn ich nach/var gehen/svn/project, dort sind keine Quelldateien von meinem Projekt oder in irgendeinem Unterverzeichnis. Obwohl der Svn-Client alle diese Dateien auschecken kann. Also habe ich gelesen, dass in Svn Dateien weder in berkley db noch in fsfs Dateisystemen separat gespeichert werden. Dann ist die Frage ... Wie exportiere ich die Quelle zurück nach/var/www/project? Wenn ich einen SVN-Export-Befehl für das Verzeichnis/var/svn/project ausführe, heißt es, dass ich nicht in einer Arbeitskopie bin :(

+2

Sie können dies aus Thema betrachten, aber ich Ihnen dringend empfehlen, es sei denn, Sie einige strenge Anforderung haben, zu vermeiden, da Versionierungssystem mit Svn und versuchen, eine verteilte ein (git, Darks mit, Mercurial .. .). Dies vereinfacht wahrscheinlich sehr Ihr Leben, da Sie sich nicht mehr mit SVN-Servern herumschlagen müssen. – Dacav

+1

es ist nichts falsch mit SVN für einen Anfänger. Es ist viel einfacher zu lernen als jedes verteilte System, das ich je gesehen habe. – rmeador

Antwort

3

Zunächst einmal ist es richtig, dass SVN eine Datenbankstruktur verwendet, um die Änderungen an Ihren Dateien zu speichern, so dass Sie nicht erwarten sollten, dass die Raw-Dateien im Repository-Ordner angezeigt werden.

Sobald Sie ein Repository erstellt haben, müssen Sie in diesem Verzeichnis fast nichts mehr tun, außer für die Konfiguration (z. B. Benutzerautorisierung).

Alle Ihre Arbeit sollte in Arbeitskopie Verzeichnisse weitergehen.

Um den Code in Ihren www Ordnertyp zu erhalten:

cd /var/www/project 
svn checkout /var/svn/project 

Jetzt können Sie Code in diesem Arbeitsverzeichnis bearbeiten (/var/www/project), wie Sie wollen. Wenn Sie diese Änderungen festschreiben möchten, geben Sie

svm commit -m "Commit message" 

Und die Änderungen werden wieder in das Repository gehen.

+0

+1 haha, der erste, der tatsächlich den Checkout-Befehl zeigt (was mir die richtige Antwort zu sein scheint) – jrsconfitto

0

Sie würden den Befehl svn export von der Client-Seite ausführen, um einen sauberen Baum zu exportieren ein anderer Pfad auf Ihrer Clientbox oder einem anderen Repository Es klingt wie/var/svn/project ist Ihr Repository (Server)

Wenn Sie meinen, von Ihr Repository zu exportieren, verwenden Sie svn export file: /// tmp/repos my-Export

0

Stellen sie sicher, es nicht auf die Dateien in /var/www/project/project statt gelegt hat.

0

Überprüfen Sie die Quelle (zu erstellen ein Arbeitsverzeichnis), dann verwenden Sie svn export innerhalb Ihrer ausgecheckten Kopie, um es woanders zu exportieren.

1

Erstens empfehle ich http://svnbook.red-bean.com/ als Referenz.

Sie möchten von Ihrem Repo an Ihren Standort exportieren. Sie können dies über erreichen:

svn export file:///var/svn/project /var/www/project

Auch der Hinweis, wie ich bin sicher, dass Sie jetzt erkannt haben, ist, dass Sie nicht einfach auf das Repository-Verzeichnis gehen und Ihre Dateien sehen, da sie in einer Datenbank gespeichert werden an diesem Ort, nicht als lose Dateien.

+0

Danke, Dan. Ich habe es geschafft, dass der Exportbefehl endlich funktioniert. Vielleicht habe ich beim ersten Mal etwas falsch gemacht;] – Marius

0

Svn speichert Dateien in einem eigenen Datenbanksystem. Wenn Sie den Code in/var/www/project durch eine exportierte Version ersetzen möchten, müssen Sie den Export auf einer Arbeitskopie aufrufen. Sie sollten in Erwägung ziehen, /var/www/project (Backup zuerst!) Zu entfernen und durch eine Wokring-Kopie zu ersetzen.

0

Sie könnten ein verteiltes Versionskontrollsystem wie Mercurial verwenden.

Es ist so einfach zu bedienen wie Subversion. In der Tat kann es besser sein, wenn das Repo auf einem lokalen Dateisystem ist (im Gegensatz zu einem Server), weil einer meiner Kollegen sagte, dass svn den FSFS-Speicher ablehnt (ich kann keine Referenz dafür finden).

Für Informationen zu Mercurial, siehe folgenden Link. Ich wünschte, ich hätte mich nie mit Svn beschäftigt.

http://hgbook.red-bean.com/read/

Verwandte Themen