Was ist der beste Weg zu bereinigen, ein Subversion-repository?
Habe ich eine wachsende repository enthält ein Dutzend oder so Projekte, die ich unterhalten mit TortoiseSVN (da bin ich völlig neu in diesem und weiß nicht, die ins und outs noch). Der Raum, den ich halten das repository ist begrenzt, und so will ich es zu sichern, dann entfernen Sie einige von den älteren Versionen. Zum Beispiel, wenn ein Projekt bei version 50, ich will nur 50,49,48.
- Nein. Bewegen Sie das repository in einen größeren Raum.
- Sollten Sie wirklich Lesen Sie die "Version Control with Subversion" - Buch (frei wie in Bier) in svnbook.red-bean.com, um ein besseres Verständnis von dem Punkt, der der Versionskontrolle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen von alten Revisionen Art von Niederlagen der Punkt des version-control, aber Sie können nur werfen aus der Revisionen, die Sie behalten möchten, dann setzen Sie in ein neues repo, und löschen Sie die alte.
Oder verwenden Sie svndumpfilter zu " einschließen/ausschließen der bestimmten bits, die Sie möchten, etc. Es gibt auch einige Infos im svn FAQs über Entfernung, die Sie nützlich finden können.
Lösche ich ältere Revisionen oder Repositorys, um Speicherplatz frei?
Die kurze Antwort ist Nein. Die Art und Weise, Subversion und CVS ist, dass Sie halten, der die gesamte Geschichte der änderungen, einschließlich der gelöschten Dateien, binäre Dateien, etc. Jede änderung ist abhängig von der letzten Version, also kann man nicht einfach hacken raus eine revision irgendwo in der Mitte oder Sie Ihr Projektarchiv beschädigt werden. Es gibt 2 Dinge, die Sie tun können, wenn Sie genügend Speicherplatz vorhanden ist: 1) Löschen Sie das Modul, und erstellen Sie Sie erneut unter Verwendung nur der HEAD-revision, die löscht alle alten Versionen (aber verlieren Sie Ihre commit-Historie). 2) Die bessere option - upgrade auf einen höheren plan :-). Dies ist weniger ein Problem mit Git, da es eine viel weniger serverseitigen Speicherbedarf.
Wie kann ich vollständig entfernen Sie eine Datei aus dem repository ist Geschichte?
Gibt es spezielle Fälle, wo möchten Sie vielleicht, um alle Beweise zu zerstören, einer Datei, oder Begehen. (Vielleicht hat jemand versehentlich verpflichtet sich zu einem vertraulichen Dokument.) Gar nicht so einfach, da Subversion absichtlich entworfen, um nie verlieren Informationen. Revisionen sind unveränderliche Bäume, die aufeinander aufbauen. Die Beseitigung einer revision aus der Geschichte würde einen Dominoeffekt auslösen, chaos in allen nachfolgenden Revisionen und möglicherweise ungültig, alle Arbeitskopien.
Das Projekt plant aber, eines Tages implementieren, die eine svnadmin auslöschen Befehl, der die Aufgabe erledigen würde, Informationen dauerhaft zu löschen. (Siehe Heft 516.)
In der Zwischenzeit, Ihre einzige Möglichkeit ist zu svnadmin dump Ihrem repository haben, dann leiten Sie die dumpfile durch svndumpfilter (ohne den schlechten Pfad) in eine svnadmin load-Befehl. Siehe Kapitel 5 des Subversion Buchs nach, dieser.
zitiert aus:
http://subversion.apache.org/faq.html#removal
http://codesion.com/benefits/faq.htm#deleterevisions
Es gibt keine Möglichkeit zu "snip" ein repository auf eine bestimmte revision in der Weise, die Sie beschreiben. Was Sie tun können, ist
svn export
das gesamte repository an der gewünschten revision, dann importieren Sie es in ein neues repository, dann wiederholen Sie die übertragungen aus der Revisionen nach, die von Ihrem log-Datei in das neue repository. Dies ist nicht trivial.Alternativ, wenn Sie nur wollen, um einige überladen Pfade aus Ihrem repository haben, und Sie haben direkten Zugriff auf das Dateisystem, in dem das repository ist der Aufenthalt, Sie können eine Kombination von
svnadmin
undsvndumpfilter
wählen Sie die Pfade, die Sie wollen, und prune alle anderen.Beachten Sie, dass was Sie beschreiben ist mehr oder weniger gegen den Punkt der Subversion: es soll um alles. Wenn Sie Häufig Schwierigkeiten haben, mit diesem, prüfen Sie die Einrichtung besser Check-in-Verfahren. Oder erwägen Sie die Verwendung Git, was macht diese Art des Experimentierens praktisch frei.