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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 192863
Url: https://administrator.de/contentid/192863
Ausgedruckt am: 24.11.2024 um 14:11 Uhr
5 Kommentare
Neuester Kommentar
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
gesichert und mit
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:
Anschließen das Projekt einrichten und mit
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
Dann sollte er den Status der geänderten Dateien korrekt anzeigen und Du solltest diese auch commiten können.
vg
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 ...
svnadmin load ...
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
svn cleanup
svn update
Dann sollte er den Status der geänderten Dateien korrekt anzeigen und Du solltest diese auch commiten können.
vg
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 ) 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
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 ) 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
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.