Supõe-se aqui que o diretório do projeto SVN é /data/svn/project, e queremos excluir o arquivo trunk/test.exe e o diretório trunk/notallowed/. As etapas são as seguintes e o comando svn executado (. no diretório bin do diretório de instalação do svn) é o seguinte:
# Primeiro exporte toda a biblioteca svn
svnadmin dump /data/svn/project > project_original.dump
# Em seguida, exclua arquivos desnecessários no arquivo project_original.dump e gere um novo arquivo dump
digite project_original.dump | svndumpfilter exclui trunk/test.exe trunk/notallowed > project_new.dump
# Em seguida, crie um novo projeto svn e importe o arquivo dump acima para um novo projeto
svnadmin criar /data/svn/project_new
svnadmin carregar /data/svn/project_new < project_new.dump
Por fim, exclua o diretório original do projeto e altere project_new para project. Deve-se notar que o comando dump exportará todas as modificações e registros históricos no projeto svn, portanto, o arquivo de dump exportado será grande e o tempo de importação será relativamente longo.
Exclua completamente algumas pastas ou arquivos do repositório SVN do lado do servidor
Se quiser excluir completamente uma pasta ou arquivo no repositório SVN, você pode usar este método (por exemplo):
Exemplo: suponha que o caminho da biblioteca SVN seja E:/svn/project e que a estrutura de diretórios na biblioteca seja
Controle de qualidade/tronco
Software/Tags/test.exe
Exclua o arquivo test.exe no diretório Software/Tags/
As etapas são:
Descarte a biblioteca SVN e use svndumpfilter para filtrar os arquivos a serem excluídos. Crie uma nova biblioteca SVN e carregue os arquivos processados na nova biblioteca SVN.
>svnadmin dump E:/svn/project > aaa.dump
>digite aaa.dump | svndumpfilter exclui /Software/Tags/test.exe > bbb.dump
>svnadmin cria E:/svn/project_new
>svnadmin carregar E:/svn/project_new < bbb.dump
Em seguida, renomeie o novo project_new para project. O projeto anterior pode ser movido ou receber outro nome (como o diretório SVN usado no TRAC é projeto, o diretório SVN usado pelos usuários também é projeto).
Este método pode obter o efeito de excluir completamente uma determinada pasta ou arquivo no repositório SVN quando não houver muitas versões no repositório SVN. No entanto, se houver muitas versões no repositório SVN, não haverá espaço de armazenamento suficiente durante o despejo. a versão. A versão não pode ser descartada. Torna-se inoperável. Neste momento, outro disco rígido deve ser instalado que possa satisfazer seu espaço de armazenamento.
Como recuperar arquivos ou pastas excluídos com SVN
Usando o TortoiseSVN:
1. Na cópia de trabalho local, use TortoiseSVN->Mostrar log para ver o histórico do repositório. Você pode usar a pesquisa.
2. Encontre a versão onde o arquivo ou pasta foi excluído e clique com o botão direito em Reverter as alterações desta revisão na mensagem de log.
3. O arquivo ou pasta é restaurado na cópia de trabalho local. Se ele foi excluído por engano, basta enviá-lo para o Repositório.
Usando o plug-in Subclipse para Eclipse:
1. Use Team->Mostrar histórico do repositório SVN para visualizar o histórico do repositório.
2. Encontre a versão onde o arquivo ou pasta foi excluído e clique com o botão direito em Reverter para a versão XX.
3. O arquivo ou pasta é restaurado na cópia de trabalho local. Se ele foi excluído por engano, basta enviá-lo para o Repositório.