Wie lösche ich vertrauliche Informationen aus Subversion?

8

Ich habe eine der früheren Versionen meines Codes, die in einem Subversion-Repository gespeichert sind, vertrauliche Informationen. Wie lösche ich es, während ich alle anderen Versionen behalte?

BEARBEITEN : Das Repository ist Google Code Project Hosting, daher kann ich das Repository nicht dumpen und wiederherstellen = (

    
Jader Dias 18.08.2009, 15:17
quelle

3 Antworten

7

Willst du willst ist eine SVN-Funktion, die allgemein als "obliterate" bezeichnet wird, was leider immer noch nicht implementiert ist.

Als Workaround müssen Sie dump, filter & amp; Reimportieren Sie Ihr Repository. Siehe z.B. der Eintrag in der SVN-FAQ Wie kann ich eine Datei vollständig aus dem Repository-Verlauf entfernen? .

Übrigens: Es ist ein Betrogener :-). Ссылка

BEARBEITEN:

  

Das Repository ist Google Code Project Hosting, also kann ich nicht dump und   stelle das Repository wieder her = (

Soweit ich sehen kann, ist die einzige Lösung in diesem Fall (Google fragen), Ihr Repository zurückzusetzen (siehe Diese FAQ , und diese Blogpost ). Dadurch werden alle Daten aus dem Repository (sowohl aktuelle Daten als auch Verlauf) vollständig entfernt, als ob Sie gerade das Repository mit svnadmin create gestartet hätten.

Offensichtlich benötigen Sie zuerst eine Sicherung Ihres Repositorys.

Die beste Lösung ist wahrscheinlich:

  • Erstellen Sie eine Sicherungskopie Ihres Repos mit snvsync (dadurch wird auch der Verlauf gesichert)
  • Mach den Dump / Filter / Restore-Tanz (siehe oben) auf deinem Backup des Repos, um die problematischen Commits zu entfernen
  • Setzen Sie das Google-Repository zurück
  • Setzen Sie Ihren gefilterten Repo erneut ein, indem Sie erneut snvsync verwenden (siehe FAQ Wie importiere ich meinen bestehenden Repo? Quellcode? )
sleske 18.08.2009, 15:26
quelle
7

Sie können nicht entfernen, was mit Subversion verbunden ist, außer einen vollständigen Speicherauszug, löschen Sie das Original und erstellen Sie das Repository neu aus dem Speicherauszug.

Wenn Sie eine Datei / Pfad vollständig entfernen möchten, können Sie das mit dem Svndumpfilter tun:

%Vor%

Dann sichern Sie Ihren / Pfad / zu / Repository und ersetzen Sie es durch / tmp / newrepository, nachdem Sie verifiziert haben, alles in Ordnung ist.

Wenn Sie nur eine einzelne Revision ausschließen möchten, müssen Sie etwas wie

tun %Vor%

Das heißt, Revision 1001 ist ausgeschlossen. Man kann es nicht feinkörniger machen, übrigens muss eine ganze Revision ausgeschlossen werden. Gleiches gilt hier, sichern Sie Ihr Original-Repository, vergewissern Sie sich, dass alles, was im neuen Repository benötigt wird, da ist.

    
nos 18.08.2009 15:54
quelle
2

Es ist ein bisschen Arbeit, aber zum Glück gibt es gute Erklärungen, solche wie dieser von Rob Gonda .

    
Fredrik Mörk 18.08.2009 15:28
quelle

Tags und Links