svn reverter mudanças no repositório mas não localmente

1

O que estou procurando aqui é como manipular o Svn para efetivamente reverter meu commit anterior para o repositório sem afetar as mudanças que eu fiz localmente.

Digamos que eu faça isso:

$ svn ci abc.java -m "Updated abc"
Sending        abc.java
Transmitting file data .
Commited revision 123

E então perceba que eu não quero fazer essa atualização no repositório ainda, mas quero manter as alterações que eu fiz localmente. Eu quero que meus arquivos locais permaneçam os mesmos, mas os arquivos no repositório voltem para a revisão 122.

Eu só consegui encontrar uma maneira de fazer isso, usando uma mesclagem reversa:

$ svn merge -c -123 abc.java
--- Reverse-merging r123 into 'integer.c':
U    integer.c
$ svn commit -m "Undoing last change: rev 123."
Sending        abc.java
Transmitting file data .
Committed revision 124.

Infelizmente, isso significa que eu tenho que copiar meus arquivos locais em outro lugar, antes de fazer a mesclagem reversa, e então copiar meu arquivo local de volta após o commit.

Eu queria saber se havia uma maneira menos indireta de fazer isso, onde as operações só acontecem no repositório?

Obrigado

    
por bguiz 19.11.2009 / 06:38

1 resposta

2

1. Checkout da nova cópia do repo

2. Executar:

svn merge -rHEAD:XXXX

(XXXX é a revisão ANTES da que você acabou de confirmar)

3. Commit

4. Excluir repo recém-verificado

    
por 19.11.2009 / 09:55

Tags