Pergunta

Eu tenho um repositório SVN hospedado em um site freemium com tamanho máximo de repositório.À medida que me aproximo dessa capacidade, estou ciente dos arquivos que fiz check-in e que sei que posso remover permanentemente para liberar espaço em disco.Como posso dizer ao SVN que um arquivo não só pode ser excluído, mas também seu histórico?

Foi útil?

Solução

Eu não acho que exista uma maneira de subversão para dizer para não ver uma versão em um arquivo específico ou, pelo menos, esquecer um arquivo quando excluído. Como derrota o objetivo do sistema de controle de versão. Você poderá conseguir isso por alguns ajustes se tiver um repositório local. No entanto, sem nenhum acesso do administrador para o repositório, será impossível fazer isso.

Se ajudar, rsvndump é uma ferramenta para dar um despejo de um repositório remoto. Com isso, você poderá obter o depósito de repositório para o sistema local. Para remover os arquivos indesejados, você pode usar este comando "CAT xxx-svn-dump | svndumpfilter exclui $ file> new-svn-dump". Embora com isso você possa reduzir o tamanho do repositório, você não poderá atualizar o repositório orginal com esse conteúdo.

Outras dicas

Veja isso:

http://subversion.apache.org/faq.html#removal diz:

Existem casos especiais em que você pode destruir todas as evidências de um arquivo ou compromisso.(Talvez alguém tenha cometido um documento confidencial acidentalmente.) Isso não é tão fácil, porque a subversão é deliberadamente projetada para nunca perder informações.Revisões são árvores imutáveis ​​que se formam.A remoção de uma revisão da história causaria um efeito dominó, criando caos em todas as revisões subsequentes e possivelmente invalidando todas as cópias de trabalho.

Possível solução nesta resposta SO:

Exclua o conteúdo do arquivo do histórico do SVN

Além disso, você pode podar sua história. Digamos que você tenha 100 revisões, pode manter o histórico mais recente, digamos 50 revisões. Isso também pode reduzir o tamanho do seu repositório de subversão.

svnadmin dump /path/to/current/repo -r50:100 > newsvn.dump
# you can delete the old repo and then
svnadmin create /path/to/new/repo
svnadmin load /path/to/new/repo < newsvn.dump

Se você puder viver sem o seu histórico de comprometimentos, pode verificar o código, remover o repositório atual, criar um novo repositório e, em seguida, confirmar o código com um novo repositório.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top