Frage

Wir haben eine Subversion-Repository mit einem Verzeichnis, das ist:

  • Nicht wirklich revisionsbedürftig Kontrolle über die Fähigkeiten von RCS
  • Nicht mit irgendetwas anderes in das Repository in Verbindung versioniert
  • Modifizierte etwa sechsmal so häufig wie der Rest des Repository

Auch wenn ich weiß, dass hohe Revisionsnummern sind kein Problem, dennoch würde Ich mag diese ein einziges Verzeichnis aus meinem Haupt-Repository und in einen zweiten, im Idealfall neu ziehen.

Was ist das beste Verfahren für das? Wenn es einen Unterschied macht, wird die SVN-Repository auf einem gehosteten (... checks ...) FreeBSD-Rechner.

Es ist erwähnenswert, dass, während ich die Versionsgeschichte in das neue Repository behalten müssen, es gibt keine Notwendigkeit, den Inhalt in den alten auszulöschen; es kann einfach dasitzen, von mir aus.

War es hilfreich?

Lösung

Sie nutzen könnten svnadmin dump und svnadmin load ein neues Repository aus dem Original zu erzeugen; dann kopieren Sie das Verzeichnis, das nicht wirklich zu einem besseren Ort in Ihr Schema passt, dann alles andere löschen. Im ursprünglichen Repository würden Sie einfach das Nicht-Fitting-Verzeichnis löschen. Dies hält alle Geschichte intakt, und Sie am Ende mit zwei Repositories.

Es gibt wohl eine Möglichkeit, anschließend beide Repositorys reinigen von den dann nutzlos Teile der Geschichte ( svndumpfilter ), aber da Festplattenspeicher ganz billig ist, würde ich glaube nicht notwendig. Wie auch immer, die SVN Dokumentation hat alle Informationen über sie.

Andere Tipps

Der empfohlene Weg, dies zu tun, ist svnadmin dump zu verwenden, dann filtern Sie die Dump-Datei mit dem svndumpfilter-Tool (siehe svnbook ).

Zum Beispiel hatte ich ein Repo mit einem Top-Level-Verzeichnis ‚Model‘ genannt, die ich auf seine eigenen Repo bewegen wollte:

svnadmin dump my_orig_repo | svndumpfilter include --drop-empty-revs --renumber-revs Model >model_only.svndump
svnadmin load my_model_repo < model_only.svndump

Das schafft die neue Repo nur mit dem Modell-Unterverzeichnis.

Für sie aus dem Original-Repository zu entfernen, können Sie einfach eine svn rm tun. Dies wird es von der letzten Version des Repo zu entfernen, und ist der einfachste Weg.

Aber wenn das Modell Verzeichnis von meinem Beispiel sehr groß ist, vielleicht hätte ich gewünscht habe es aus dem ursprünglichen ganz zu entfernen. Ich konnte tun, dass durch den Prozess zu wiederholen eine andere gefilterten SVN-Dump-Datei, die ausgeschlossen es stattdessen zu erstellen. Dann würde ich das Original mit dem neuen ersetzen, die nicht das ausgeschlossenen Verzeichnis haben.

Ich würde exportieren (nicht Kasse) das Verzeichnis, in das neue Repository importieren, löschen Sie sie dann aus dem Original (mit einer Log-Nachricht, die angibt, wo es ging, natürlich, -).

Das kann oder kann nicht der „beste“ Weg, es zu tun ...

Ich weiß nicht, ob ich das richtig verstanden hat, aber es ist eine schöne Lösung für die. Wenn Ihr Original-Repository in SVN war: // Domäne und der Ordner, den Sie viel verwenden wird als „Ordner“, glaube ich, kann man einfach den folgenden Befehl ausführen: svn co svn://domain/folder nur diesen Ordner zur Kasse

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top