Di sini diasumsikan bahwa direktori proyek SVN adalah /data/svn/project, dan kami ingin mengecualikan file trunk/test.exe dan direktori trunk/notallowed/. Langkah-langkahnya adalah sebagai berikut dan perintah svn dijalankan ( di direktori bin dari direktori instalasi svn) adalah sebagai berikut:
# Pertama ekspor seluruh perpustakaan svn
svnadmin dump /data/svn/project > project_original.dump
# Kemudian kecualikan file yang tidak diperlukan dalam file project_original.dump dan buat file dump baru
ketik project_original.dump |. svndumpfilter kecualikan trunk/test.exe trunk/notallowed > project_new.dump
# Selanjutnya buat proyek svn baru dan impor file dump di atas ke proyek baru
svnadmin membuat /data/svn/project_new
svnadmin memuat /data/svn/project_new < project_new.dump
Terakhir, hapus direktori proyek asli dan ubah project_new menjadi project. Perlu dicatat bahwa perintah dump akan mengekspor semua modifikasi dan catatan sejarah dalam proyek svn, sehingga file dump yang diekspor akan berukuran besar dan waktu impor akan relatif lama.
Hapus sepenuhnya beberapa folder atau file di repositori SVN dari sisi server
Jika Anda ingin menghapus sepenuhnya folder atau file di repositori SVN, Anda dapat menggunakan metode ini (misalnya):
Contoh: Asumsikan jalur perpustakaan SVN adalah E:/svn/project, dan struktur direktori di perpustakaan adalah
QA/Batang
Perangkat Lunak/Tag/test.exe
Hapus file test.exe di direktori Software/Tags/
Langkah-langkahnya adalah:
Buang perpustakaan SVN dan gunakan svndumpfilter untuk memfilter file yang akan dihapus. Buat perpustakaan SVN baru dan muat file yang diproses ke perpustakaan SVN baru.
>svnadmin dump E:/svn/project > aaa.dump
> ketik aaa.dump |. svndumpfilter kecualikan /Software/Tags/test.exe > bbb.dump
>svnadmin buat E:/svn/project_new
>svnadmin memuat E:/svn/project_new < bbb.dump
Kemudian ganti nama project_new menjadi project. Project sebelumnya bisa dipindahkan atau diberi nama lain (Karena direktori SVN yang digunakan di TRAC adalah project, maka direktori SVN yang digunakan pengguna juga project)
Metode ini dapat mencapai efek menghapus sepenuhnya folder atau file tertentu di repositori SVN ketika tidak banyak versi di repositori SVN, namun jika ada terlalu banyak versi di repositori SVN, ruang penyimpanan tidak akan mencukupi saat dumping versinya. Versi tersebut tidak dapat dibuang. Ini menjadi tidak bisa dioperasikan. Saat ini, harus dipasang hard disk lain yang dapat memenuhi ruang penyimpanannya.
Bagaimana memulihkan file atau folder yang terhapus dengan SVN
Menggunakan TortoiseSVN:
1. Dalam copy pekerjaan lokal, gunakan TortoiseSVN->Tampilkan log untuk melihat riwayat repositori. Anda dapat menggunakan pencarian.
2. Temukan versi file atau folder yang dihapus, lalu klik kanan Kembalikan perubahan dari revisi ini di pesan Log.
3. File atau folder dikembalikan ke copy pekerjaan lokal. Jika terhapus secara tidak sengaja, komit saja ke Repositori.
Menggunakan plugin Subclipse untuk Eclipse:
1. Gunakan Tim->Tampilkan Riwayat Repositori SVN untuk melihat riwayat repositori.
2. Temukan versi file atau folder yang dihapus, klik kanan Kembalikan ke versi XX.
3. File atau folder dikembalikan ke copy pekerjaan lokal. Jika terhapus secara tidak sengaja, komit saja ke Repositori.