Aquí se supone que el directorio del proyecto SVN es /data/svn/project, y queremos excluir el archivo trunk/test.exe y el directorio trunk/notallowed/. Los pasos son los siguientes y el comando svn ejecutado (. en el directorio bin del directorio de instalación de svn) es el siguiente:
# Primero exporte toda la biblioteca svn
Volcado de svnadmin /data/svn/project > project_original.dump
# Luego excluya los archivos innecesarios en el archivo project_original.dump y genere un nuevo archivo de volcado
escriba project_original.dump | svndumpfilter excluya tronco/test.exe tronco/notallowed > proyecto_nuevo.dump
# Luego cree un nuevo proyecto svn e importe el archivo de volcado anterior a un nuevo proyecto
svnadmin crear /data/svn/project_new
svnadmin carga /data/svn/project_new < proyecto_new.dump
Finalmente, elimine el directorio del proyecto original y cambie project_new a project. Cabe señalar que el comando de volcado exportará todas las modificaciones y registros históricos en el proyecto svn, por lo que el archivo de volcado exportado será grande y el tiempo de importación será relativamente largo.
Elimine completamente algunas carpetas o archivos en el repositorio SVN desde el lado del servidor
Si desea eliminar completamente una carpeta o archivo en el repositorio SVN, puede utilizar este método (por ejemplo):
Ejemplo: Supongamos que la ruta de la biblioteca SVN es E:/svn/project y que la estructura de directorios en la biblioteca es
Control de calidad/troncal
Software/Etiquetas/test.exe
Elimine el archivo test.exe en el directorio Software/Tags/
Los pasos son:
Vuelque la biblioteca SVN y use svndumpfilter para filtrar los archivos que se eliminarán. Cree una nueva biblioteca SVN y cargue los archivos procesados en la nueva biblioteca SVN.
> volcado de svnadmin E:/svn/project > aaa.dump
>escriba aaa.dump | svndumpfilter excluir /Software/Tags/test.exe > bbb.dump
>svnadmin crear E:/svn/project_new
>svnadmin carga E:/svn/project_new < bbb.dump
Luego cambie el nombre del nuevo proyecto_nuevo a proyecto. El proyecto anterior se puede mover o darle otro nombre (debido a que el directorio SVN usado en TRAC es proyecto, el directorio SVN usado por los usuarios también es proyecto).
Este método puede lograr el efecto de eliminar por completo una determinada carpeta o archivo en el repositorio SVN cuando no hay muchas versiones en el repositorio SVN. Sin embargo, si hay demasiadas versiones en el repositorio SVN, no habrá suficiente espacio de almacenamiento al realizar el volcado. la versión. La versión no se puede volcar. Se vuelve inoperable. En este momento, se debe instalar otro disco duro que pueda satisfacer su espacio de almacenamiento.
Cómo recuperar archivos o carpetas borrados con SVN
Usando TortoiseSVN:
1. En la copia de trabajo local, use TortoiseSVN->Mostrar registro para ver el historial del repositorio. Puedes utilizar la búsqueda.
2. Busque la versión donde se eliminó el archivo o carpeta y haga clic con el botón derecho en Revertir los cambios de esta revisión en el mensaje de registro.
3. El archivo o carpeta se restaura a la copia de trabajo local. Si se eliminó por error, simplemente envíelo al Repositorio.
Usando el complemento Subclipse para Eclipse:
1. Utilice Equipo->Mostrar historial del repositorio SVN para ver el historial del repositorio.
2. Busque la versión donde se eliminó el archivo o carpeta, haga clic derecho en Revertir a la versión XX.
3. El archivo o carpeta se restaura a la copia de trabajo local. Si se eliminó por error, simplemente envíelo al Repositorio.