O svn possui um comando `revert-all`?

159

Se eu quiser jogar fora todas as minhas alterações e retornar ao código que está no repositório, faça o seguinte:

$ rm -fr *
$ svn up

Isso é fácil, mas estou me perguntando se existe um único comando que fará isso, algo como:

$ svn revert-all
Eric Wilson
fonte
Quem usa -fr em vez de -rf? Há uma razão pela qual é pronunciado rimraf, não rimfer.
Jimmy Hoffa
@JimmyHoffa Qual é o motivo?
Eric Wilson
3
Wilson da convenção! Convenções, senhor! Sem nossa disciplina e tradições culturais, somos apenas selvagens! Eu digo, bom dia senhor!
Jimmy Hoffa

Respostas:

306

Você poderia fazer:

svn revert -R .

Isso não excluirá nenhum novo arquivo que não esteja sob controle de versão. Mas você pode escrever facilmente um script de shell para fazer isso da seguinte maneira:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done
Juan Carlos Muñoz
fonte
2
Bem-vindo ao SO, e obrigado por uma resposta completa, pois svn revert -Rnão é equivalente aos dois comandos que dei.
Eric Wilson
1
Para remover todos os arquivos que não estão sob controle de versão na linha de comando do Windows, a resposta está aqui: stackoverflow.com/a/1502365/1385429
Christiaan Westerbeek
O mashzo do usuário apontou (em uma resposta agora excluída) que o -Rsinalizador pode ser necessário para garantir que os diretórios não-versionados também sejam excluídos, como parte do descarte de todas as alterações. Considere incorporar isso em sua resposta, se isso lhe parecer apropriado.
Jeremy Banks
27

Existe um comando

svn revert -R .

OU
você pode usar o - profundidade = infinito, que é realmente o mesmo que acima:

svn revert --depth=infinity 

svn reverté inerentemente perigoso, pois seu objetivo é jogar fora os dados - ou seja, suas alterações não confirmadas. Depois de revertido, o Subversion não oferece como recuperar essas alterações não confirmadas

bilash.saha
fonte
7
-Ré equivalente a--depth=infinity
Michael Burr
4
Seu cmd "svn revert -R" está ausente no diretório atual da sintaxe. Deve ser "svn revert -R".
boddhisattva
Atualmente, a postagem parece -Rser mutuamente exclusiva --depth-infinityquando não é.
Ahnbizcad
@ahnbizcad Não são esses dois sinônimos exatos, afinal?
Nyerguds
Esse é meu argumento. Essa resposta faz os dois parecerem diferentes quando não são. "mutuamente exclusivas" = oposto sinônimo
ahnbizcad
17

Use a opção recursiva --recursive (-R)

svn revert -R .
Chris
fonte
0

Para reverter arquivos modificados:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'
Taylor Hawkes
fonte
Acho que minha alteração de formatação representa o que você deseja. Reversão, se você não gostar. E graças, é bom lembrar os velhos tempos de SVN ... :)
Eric Wilson