2009-12-15 6 views
7

Wenn Dateien aus dem svn-Repository gelöscht werden, können sie weiterhin von Benutzern aufgerufen werden, die alte Revisionen auschecken. Dies ist offensichtlich einer der großen Vorteile der Quellcodeverwaltung.Ist es möglich, eine Datei aus einem SVN-Repository zu löschen?

Ist es möglich, eine Datei aus dem Repository zu löschen? Ich bin mir bewusst, dass dies die Integrität von früheren Revisionen, die die Datei enthalten, beeinträchtigen würde.

Zum Beispiel könnte proprietärer Code unbeabsichtigt in das öffentliche svn-Repository eines Open-Source-Projekts überführt werden. Gibt es eine unterstützte Möglichkeit, es aus dem Repository zu entfernen, so dass es nicht abgerufen werden kann, selbst wenn Sie auf frühere Revisionen zurückblicken?

Antwort

16

http://subversion.tigris.org/faq.html#removal

Es gibt spezielle Fälle, in denen Sie vielleicht alle Beweise einer Datei oder begehen zu zerstören. (Vielleicht hat jemand versehentlich ein vertrauliches Dokument verfasst.) Das ist nicht so einfach, da Subversion bewusst darauf ausgelegt ist, niemals Informationen zu verlieren. Revisionen sind unveränderliche Bäume, die aufeinander aufbauen. Das Entfernen einer Revision aus dem Verlauf würde einen Domino-Effekt verursachen, der in allen nachfolgenden Revisionen Chaos verursachen und möglicherweise alle Arbeitskopien ungültig machen würde.

Das Projekt hat jedoch Pläne, irgendwann einen Befehl svnadmin obliterate zu implementieren, der die Aufgabe des permanenten Löschens von Informationen bewerkstelligen würde. (Siehe Ausgabe 516.)

In der Zwischenzeit ist Ihre einzige Zuflucht zu Svnadmin Dump Ihr ​​Repository, dann Pipe die Dumpdatei durch Svndumpfilter (mit Ausnahme der schlechten Pfad) in eine Svnadmin Ladebefehl. Details dazu finden Sie in Kapitel 5 des Subversion-Buchs.

Verwandte Themen