Ich habe einen "docs" -Ordner in einem Subversion-Repository mit dem Namen "project". Ich bin zu dem Schluss gekommen, dass es wirklich unter einem separaten Subversion-Repository namens "project_docs" aufbewahrt werden sollte.
Ich möchte den Ordner "docs" ( und alle seine Revisionen ) in das Repository "project_docs" verschieben. Gibt es eine Möglichkeit, dies zu tun?
quelle
"C:\Program Files (x86)\VisualSVN Server\bin\svnadmin" dump c:\Repositories\MyRepository > c:\Temp\MyReository.dump
svndumpfilter hat einen schwerwiegenden Fehler: Wenn eine Datei oder ein Pfad von einem Pfad, den Sie herausfiltern, in einen Pfad kopiert wurde, in den Sie filtern, kann svndumpfilter den Verlauf nicht ausfüllen, und der Auftrag schlägt fehl.
Sie können svndumpfilter2 verwenden, wenn dieses Problem auftritt .
quelle
Dies wird in der SVN-Dokumentation erläutert. Lesen Sie den Abschnitt Repository-Wartung zu
svndumpfilter
... Hier wird speziell beschrieben, wie Sie Projekte aus einem zentralen Repository sichern und in neue, separate Repositorys verschieben.quelle
Ich glaube nicht, dass Sie dies aus der Ferne tun können (dh ohne eine lokale Kopie). Aber das sollte funktionieren:
svn export
der Ordner vom ursprünglichen Server, dannsvn add
zu Ihrem neuen Repo.Mögen:
Edit: D'oh, das lässt die Geschichte fallen. Verwenden Sie,
svnadmin
wie Samuel beschreibt .quelle
Zum späteren Nachschlagen:
In der SVN-Dokumentation wird klar berichtet:
Wenn Sie die Speicherauszugsdatei manuell bearbeiten möchten, um ein Verzeichnis der obersten Ebene zu entfernen, stellen Sie sicher, dass Ihr Editor nicht so eingestellt ist, dass Zeilenendezeichen automatisch in das native Format konvertiert werden (z. B. \ r \ n in \ n). da der Inhalt dann nicht mit den Metadaten übereinstimmt. Dadurch wird die Speicherauszugsdatei unbrauchbar.
Verwenden Sie sed oder Vim, um das Verzeichnis der obersten Ebene zu ersetzen, aber dieser Verzeichnisname war auch in einer Projektdatei enthalten !!!! Dies verursacht einen SVN-Ladeprüfsummenfehler.
Wenn Sie diesen Vorgang ausführen, ersetzen Sie keine Zeichenfolgen nur mit dem Pfadnamen sed.
Ersetzen Sie "Knotenpfad: alter_Pfad" durch "Knotenpfad: neuer_Pfad". Weitere Informationen finden Sie im SVN-Buch, Kapitel 5, „Repository-Verwaltung“.
quelle
Ich habe versucht, die akzeptierte Antwort zu verwenden, aber ich hatte ein riesiges Repository und wollte ein kleines Verzeichnis exportieren. Ich konnte es mir nicht leisten, das gesamte Repository zu sichern.
Daher habe ich nur die Revisionen exportiert, bei denen sich mein Verzeichnis geändert hat (dies funktioniert möglicherweise nicht, wenn das zu exportierende Verzeichnis Verweise auf andere Stellen in Ihrem Repo enthält).
Sie müssen Ihre Repo-URL (
URL_to_docs
), den Speicherort in server (/svn/old_repo
) und den Pfad zu den Dokumenten im Repository (path/to/docs
) ersetzen.Sie können Ihre leicht bearbeiten,
docs_only.dump
wenn Sie den Speicherort Ihres Dokumentverzeichnisses in Ihrem neuen Repository ändern möchten.quelle