2010-02-12 14 views
8

E 'possibile rimuovere un file, con tutta la cronologia delle versioni, da SVN? Ad esempio se aggiungi un file con informazioni finanziarie riservate semplicemente per fare il backup, e poi rendi conto che è in una sottodirectory SVN tutti gli sviluppatori possono vedere ...Come rimuovere tutte le tracce di un file da Subversion?

risposta

11

Sì, ma non è facile. È necessario essere un amministratore sul server su cui è in esecuzione il server Subversion. Quindi utilizzare svnadmin dump per scaricare il repository e svndumpfilter per escludere il file appropriato e quindi ricostituire il repository. Si tratta di un'operazione costosa e costosa che richiederà molto tempo per i repository di grandi dimensioni.

Vedere the Subversion FAQ per ulteriori dettagli. A detailed example di come eseguire questa operazione viene anche fornito nel libro Subversion.

+0

Un buon sistema di sicurezza contro questo è quello di impedire il commit del codice che causerebbe questo tipo di problemi problematici - ad esempio, come prima passata, potresti avere una whitelist di estensioni di file che il tuo hook pre-commit controllerà. –

+0

Fail safe non avrebbe aiutato qui. Abbiamo una sezione di documentazione, con file di Word. Ne ho creato uno con il piano della fase successiva - tempistiche, costi, tutto e l'ho impegnato a fare un backup :( –

2

Come già detto, questo richiederà il dumping e il filtraggio. Tuttavia qui ci sono alcuni trucchi che possono rendere doloroso (ad esempio se il file è stato spostato o i percorsi sono stati modificati). Ho appena svolto un processo molto simile e l'ho documentato con attenzione qui: http://www.troyhunt.com/2009/12/black-art-of-splitting-subversion.html

Problemi correlati