Eu tenho um diretório de trabalho SVN. Fiz algumas alterações nesse diretório e ele aparece em svn status
. Mas existe alguma maneira de remover todas as minhas alterações e obter tudo do tronco usando a linha de comando?
195
Eu tenho um diretório de trabalho SVN. Fiz algumas alterações nesse diretório e ele aparece em svn status
. Mas existe alguma maneira de remover todas as minhas alterações e obter tudo do tronco usando a linha de comando?
svn revert -R .
svn up
Isso reverterá recursivamente o diretório atual e tudo o que está abaixo dele e depois será atualizado para a versão mais recente.
Usei uma combinação das respostas de outras pessoas para chegar a esta solução:
Reverter alterações normais do SVN local
Remova qualquer outra alteração e suporte a remoção de arquivos / pastas com espaços, etc.
Não se esqueça de obter os arquivos mais recentes do SVN
fonte
fonte
svn cleanup . --remove-ignored
Se você não tiver alterações, poderá sempre ser realmente completo e / ou preguiçoso e fazer ...
Mas, na verdade, não faça isso, a menos que você tenha certeza de que a opção nuke-from-space é o que você deseja! Isso tem a vantagem de também remover todas as cruft de compilação, arquivos temporários e coisas que o SVN ignora.
A solução mais correta é usar o comando revert:
O -R faz com que o subversion recursione e reverta tudo dentro e abaixo do diretório de trabalho atual.
fonte
svn nuke-from-space
Nenhuma das respostas aqui era exatamente o que eu queria. Aqui está o que eu vim com:
Testado no Linux; pode funcionar no Cygwin, mas conta com (acredito) uma extensão específica do GNU que permite que os xargs se dividam com base no
'\0'
espaço em branco e não no espaço em branco.A vantagem do comando acima é que ele não requer nenhuma atividade de rede para redefinir a sandbox. Você obtém exatamente o que tinha antes e perde todas as alterações . (isenção de responsabilidade antes que alguém me culpe por esse código destruindo seu trabalho) ;-)
Uso esse script em um sistema de integração contínua em que quero garantir que uma compilação limpa seja executada após a execução de alguns testes.
Edit : Não tenho certeza se isso funciona com todas as versões do Subversion. Não está claro se o
svn status
comando sempre é formatado de forma consistente. Use por sua conta e risco, como em qualquer comando que use esserm
comando geral .fonte
svn revert desfará todas as alterações locais que você fez
fonte
Você pode usar o seguinte comando para reverter todas as alterações locais:
fonte
Irá remover qualquer arquivo que foi modificado. Parece que me lembro de ter problemas com a reversão quando arquivos e diretórios podem ter sido adicionados.
fonte
svn revert
fonte
Se você estiver no Windows, o seguinte loop for reverterá todas as alterações não confirmadas feitas no seu espaço de trabalho:
Se você deseja remover todas as alterações não confirmadas e todos os objetos não versionados, serão necessários 2 loops:
fonte