Entfernen Sie Dateien aus dem Revisionsverlauf des SVN-Repositorys

Wenn wir an einem privaten Repository arbeiten, das für unsere persönlichen Tests oder Entwicklungen verwendet wird, laden wir möglicherweise einige private Daten hoch. Die unerwünschten Datei-Uploads in mehreren Commits führen zu einer drastischen Vergrößerung des Repositorys.

Sobald die Entwicklungsarbeit abgeschlossen ist und wir uns entscheiden, das Repository öffentlich zu machen, müssen wir darüber nachdenken, die in der Entwicklungsphase an das Repository übertragenen privaten Daten zu entfernen.

Wir können es problemlos aus der Anwendung auf unserem Entwicklungscomputer entfernen und einen Commit für das Repository durchführen. Die Daten verbleiben jedoch weiterhin in den vorherigen Commits.

Hier müssen wir eine Lösung finden, um die Dateien aus dem Revisionsverlauf zu entfernen. Wenn wir hierfür eine gute Methode finden, können wir unseren Kunden auch bei der Verwaltung ihrer Repository-Kontingente und anderen Bereichen helfen Anwendungswartung und Unterstützung.

Ich habe einige Tests mit der Option „svndumpfilter“ durchgeführt und konnte möglicherweise eine Lösung zum Entfernen von Dateien aus dem Revisionsverlauf des SVN-Repositorys finden.

Wenn jemand ein Problem mit der Kontingentüberschreitung des SVN-Repositorys hat oder daran interessiert ist, unerwünschte Dateien aus dem Verlauf zu entfernen, können Sie die folgenden Schritte ausführen:

1. Erstellen Sie einen Dump Ihres Repositorys.

     svnadmin dump /var/svn/REPOSITORY > dumpfile

2. Filtern Sie die Dump-Datei.

     svndumpfilter schließt /path/of/file/to/remove < dumpfile > newdumpfile aus

Dadurch wird die Datei „/path/of/file/to/remove“ entfernt. Sie können mehrere Dateien gleichzeitig wie folgt entfernen:

     svndumpfilter schließt Datei1 Datei2 < Dumpfile > Newdumpfile aus

3. Erstellen Sie ein neues Repository.

     svnadmin erstellt /var/svn/REPOSITORY_NEW

4. Importieren Sie die Dumpdatei in das neue Repository.

     svnadmin lädt /var/svn/REPOSITORY_NEW < newdumpfile

5. Ersetzen Sie das alte Repository durch das neue.

    mv /var/svn/REPOSITORY /var/svn/REPOSITORY_OLD

    mv /var/svn/REPOSITORY_NEW /var/svn/REPOSITORY

Um dies zu überprüfen, durchsuchen Sie Ihren Verlauf und sehen Sie sich eine der von Ihnen entfernten Dateien an. Sie erhalten eine Fehlermeldung, dass die Datei nicht gefunden werden konnte. Möglicherweise müssen Sie einen neuen Checkout und einen Commit durchführen, um zu sehen, ob alles wie erwartet funktioniert. Wenn alles gut funktioniert, können wir die Dump-Dateien und die alte Repository-Sicherung entfernen.

Versuche es. Prost!!

Gepostet im Namen von Sanal Inasu

Nehmen Sie Kontakt mit uns auf.

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman