Wie lösche ich eine Datei aus einer Revision in SVN?

8

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?

    
Guy 29.08.2008, 01:40
quelle

8 Antworten

3
  

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.

    
Damien B 29.08.2008 02:13
quelle
2

Vielleicht sollten Sie Ihr Produktionspasswort ändern, um das Svn-Problem zu vermeiden.

    
Mike Thompson 29.08.2008 01:42
quelle
2

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%     
Sam Hasler 11.09.2008 14:41
quelle
2

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.

    
Niklas Hofer 07.01.2009 02:07
quelle
0

Das schien zu funktionieren. Also was ich getan habe, war:

  1. Kopieren Sie die Datei in einen anderen Ordner.
  2. Löschen Sie TortoiseSVN aus dem aktuellen Ordner, gefolgt von einem Commit.
  3. Kopieren Sie die Datei wieder in den Ordner.
  4. Fügen Sie die Datei mit TortoiseSVN hinzu und bestätigen Sie erneut.

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.)

    
Guy 29.08.2008 02:02
quelle
-3

Ich bin mir nicht sicher. Sie könnten immer eine neue Datei erstellen und die neueste Revision in diese kopieren und damit den vorherigen Revisionsverlauf löschen.

    
Bernard 29.08.2008 01:42
quelle

Tags und Links