Einer meiner Mitarbeiter hat einige Dateien in SVN eingecheckt und eine der Dateien enthält ein Passwort. Das Passwort wurde aus der Datei entfernt und eine neue Version eingecheckt, aber das Passwort befindet sich offensichtlich noch im Repository, wenn wir uns den Revisionshistory anschauen und zu dieser Revision gehen. (Wir verwenden TortoiseSVN als Client.)
Wie lösche ich diese Datei sicher aus dem Repository in SVN?
Es ist nicht hübsch: Wie entferne ich eine Datei vollständig aus dem Repository-Verlauf?
>Ich kann jetzt keine Überarbeitungsgeschichte mehr finden - aber es könnte einfach sein, dass ich nicht an der richtigen Stelle stehe.
Sie können es sehen, indem Sie sich die Ordnerhistorie anschauen, die Ihnen die Revision gibt, wo sich die Datei noch befand, und Sie können so die vertrauliche Datei wiederherstellen. Es ist also eine schlechte Lösung.
Vielleicht sollten Sie Ihr Produktionspasswort ändern, um das Svn-Problem zu vermeiden.
Wenn es die letzte Revision (HEAD) ist, können Sie ( BACKING UP Ihren Repo vorher) die Dateien dieser Revision in db\revs
und db\revprops
löschen und dann die Befolgen Sie das Python-Skript, um zu beheben, welche Revision Sie als HEAD betrachten.
z.B. Wenn head 522 ist und das Passwort in 520 festgelegt wurde, müssten Sie die Revisionen 520,521 und 522 löschen.
(Dieses Skript sollte nicht notwendig sein, sobald SVN verwerfen implementiert wurde)
>(Ich habe dieses Skript nicht geschrieben, ich habe es von hier )
%Vor%Ihr Passwort ist immer noch da (Svn Cat-Datei @ 2342 wo 2342 ist eine Revision der Datei war immer noch da).
Sie können 'svnadmin dump' 'Sie Repos in eine Datei, suchen und ersetzen Sie Ihr Passwort mit "ultrasecret', '' svnadmin create '' eine neue Repos und '' svnadmin laden '' die modifizierte Dump in diese neuen Repos Seien Sie sich der binären Daten in Ihrem Dump bewusst, verwenden Sie also einen geeigneten Editor / sed.
Das schien zu funktionieren. Also was ich getan habe, war:
Ich kann jetzt keine Überarbeitungsgeschichte mehr finden - aber es könnte einfach sein, dass ich nicht an der richtigen Stelle stehe.
Eine modifizierte Frage wäre nun, wie kann ich den Revisionsverlauf der Datei finden, die gelöscht und dann erneut an SVN übergeben wurde?
(Übrigens entschuldige ich mich, dass ich die Frage nicht früher genauer gestellt habe, da ich nie erwähnt habe, dass eine der Optionen darin bestand, alle Überarbeitungsverläufe zu löschen, da sie mir nicht in den Sinn gekommen waren.)
Tags und Links svn