beckslevel91
Goto Top

Debian Subversion altes Projekt importieren

Hallo liebe Administrator.de Community,

Ich habe folgende Problemstellung:

Ich habe vor einiger Zeit auf meinem Debian Server ein Subversion Repository erstellt und ein Projekt angefangen.

Da der Server aus gewissen Gründen neu aufgesetzt werden musste, habe ich jetzt in der Sicherung einmal das Projektverzeichnis mit einem ".svn" Ordner und einmal das zugehörige Repository.

Meine Frage ist,

wie kann ich das alte Projekt jetzt "importieren", so dass ich wie gewohnt daran weiter arbeiten kann?

Stand auf dem Server:
Subversion ist installiert und läuft. Benutzer sind eingerichtet, ansonsten gibt es keine weitere Konfiguration die ich vorgenommen habe.

Wäre für Antworten echt dankbar, dar ich im Netz nicht wirklich etwas brauchbares finden kann.

Lg,

J.R.

Content-Key: 192863

Url: https://administrator.de/contentid/192863

Printed on: April 16, 2024 at 13:04 o'clock

Member: bytecounter
bytecounter Oct 16, 2012 updated at 17:20:06 (UTC)
Goto Top
Hi J.R.

habe sowas ähnliches gerade hinter mir und kann Dir daher ein paar Tipps geben.

Ich geh mal davon aus, dass du das Repository mit
svnadmin dump ...
gesichert und mit
svnadmin load ...
wieder zurück gespielt hast.

Wenn in Deiner Arbeitskopie Änderungen sind, die noch nicht im Repository stehen, solltest Du Deine Arbeitskopie erst einmal außerhalb Deines Projektordners speichern und dann dort alle svn-Verzeichnisse löschen:
find ./ -type d -name ".svn" -exec rm -Rf {} \;  

Anschließen das Projekt einrichten und mit
svn checkout 
auschecken. Wenn das ferti8g ist, kannst Du entweder die geänderten Dateien aus Deiner gesicherten Arbeitskopie rüberkopieren - oder das gesamte ausgecheckte Projekt mit Deinem gesicherten Projekt überschreiben. Wichtig: Es dürfen keine .svn-Verzeichnisse zurück kopiert werden! Anschließend ein
svn cleanup
svn update

Dann sollte er den Status der geänderten Dateien korrekt anzeigen und Du solltest diese auch commiten können.

vg
Member: beckslevel91
beckslevel91 Oct 17, 2012 at 05:33:52 (UTC)
Goto Top
Hey bytecounter,

danke für deine Antwort das klingt ja schon sehr nach einer brauchbaren Lösung.
Leider muss ich ehrlich gestehen, den ersten Schritt nicht gemacht zu haben (dump) und es möglicherweise jetzt der Fall ist, das mir sogar das ganze Repos fehlt.

Ich habe aber noch das Arbeitsverzeichnis mit den svn-Files.

Entschuldige bitte wenn ich ganz Laienhaft frage, aber inwiefern ist denn ein Repository zwingend erforderlich, oder ließe sich dies rekonstruieren?

Lg,

J.R.
Member: bytecounter
bytecounter Oct 17, 2012 at 09:22:05 (UTC)
Goto Top
Im Detail bin ich da auch überfragt. Subversion speichert Änderungen unabhängig von den Projektdateien in einer Datenbank.
Wäre durchaus mal interessant zu versuchen, einfach das Verzeichnis zu kopieren. Sofern auf dem Zielrechner der absolute Pfad und die Subversion-Version identisch ist, müsste das eigentlich(!, ich liebe dieses "eigentlich" unnötige Wort face-wink ) funktionieren - könnte man ja einfach mal testen.

Mit svnadmin dump erstellst Du ein vollständiges "Projektarchiv" welches alle Revisionen erhält. Dieses kannst Du dann mit load zurückspielen - und ist somit von der verwendeten Subversion-Version unabhängig.

Auf jeden Fall ist es wichtig, lokalen .svn-Verzeichnisse vorher zu löschen. Denn Subversion überprüft mit Prüfsummen, ob sich eine Datei gegenüber dem Repository geändert hat. Diese Dateien solltest Du auf jeden Fall neu erstellen lassen (cleanup / update). Allerdings kann es trotzdem dazu kommen, dass er eine Kollision anzeigt, die er nicht beheben möchte. Nach meiner Vermutung müsste das am durhs Kopieren geänderten Zeitstempel o. ä. liegen. Kann subversion das nicht selbstständig korrigieren, kopiere ich die Datei raus, überspiel die Datei mit der aus dem Repository, und kopieren dann den neuen Inhalt in diese Datei. Dann kann er sie problemlos committen.

lg
Member: dog
dog Oct 18, 2012 at 18:54:47 (UTC)
Goto Top
Entschuldige bitte wenn ich ganz Laienhaft frage, aber inwiefern ist denn ein Repository zwingend erforderlich

SVN ist ein zentrales VCS.
Im Repository sind alle Versionen der Dateien gespeichert und alle Pfade.
Auf deinem PC selbst ist nur immer die aktuelle und Version und die Pfade, die du ausgecheckt hast.
Das Repository kontrolliert außerdem wer die neuste Version einer Datei hat.
Ohne Repository kein SVN.

Git und Konsorten dagegen sind dezentrale VCS.
Bei denen MUSST du dir immer das ganze Repository runterladen und dir aus der lokalen Version eine Arbeitskopie erstellen.
Dort gibt es in dem Sinne auch keine neuste Version, weil jeder für sich eine hat.
Änderungen müssen zwischen den einzelnen Repositories synchronisiert werden.
Member: beckslevel91
beckslevel91 Oct 18, 2012 at 18:59:30 (UTC)
Goto Top
Alles klar.. danke für die hilfreichen Informationen.

Unter gegebenen Umständen bleibt mir dann leider (aufgrund fehlender Repos-Sicherung) nichts anderes übrig, als den aktuellen Stand als Version 1 auszuchecken..

danke trotzdem, wird mir für die Zukunft auf jeden Fall 'ne Lehre sein ;))

lg,

J.R.