Deseja excluir revisões do meu repositório SVN

33

As últimas revisões no meu repositório de código foram corrompidas e desestabilizaram meu aplicativo. Quero reverter para uma revisão anterior.

Mas não quero simplesmente usar 'reverter' na minha cópia de trabalho; Eu realmente quero apagar minha revisão da cabeça e várias revisões antes no meu repositório, assim "revertendo" o meu repositório para uma revisão anterior, que se tornaria a revisão da cabeça. Alguém sabe como eu faria isso?

    
por Sathyajith Bhat 13.01.2010 / 19:08

6 respostas

12

Talvez este link ajude você:

link

Citação:

  1. Change to the top directory within your working copy (assuming you want to roll back the whole of the working copy).

  2. run svn revert to revert your working copy's files to the state they were in when you last committed/checked out.

  3. run svn status -v to see which revision number your working copy now corresponds to (it's the highest revision number in the list that svn status -v produces).

  4. run svn merge -rXX:YY where XX is the number you obtained in the previous step and YY is the number of the revision you want to revert to.

  5. Done! The possible exception to this is that files in your working copy that didn't exist when revision YY was originally made, will still be there, because by default svn doesn't remove things. If you want to get rid of them, run a svn del [filename] on each of them.

  6. Well done! Now play with your working copy as though all those intermediate edits had never happened . And when you're ready to commit your efforts, just use svn commit as usual!

    
por 13.01.2010 / 19:41
71

Isso funcionou para mim. Dado que você tem a revisão 1234 como o HEAD e você quer reverter três últimos commits:

svnadmin create newrepo
svnadmin dump -r 0:1231 repo | svnadmin load newrepo
mv repo oldrepo
mv newrepo repo
    
por 26.07.2011 / 08:55
5

Eu sei que esta é uma questão antiga, no entanto, acabei de descobrir como fazer isso com o Windows / TortoiseSVN.

Como um comentário sugeriu, você não pode "excluir" uma revisão, mas o que você pode fazer é fazer uma revisão mais atual que seja a mesma revisão que você deseja reverter.

  1. Finalize o HEAD do repositório para o diretório do qual você deseja reverter a revisão.
  2. Carregue a visualização "Mostrar registro" no TortoiseSVN para o diretório de nível mais alto que você deseja reverter (por exemplo, "Tronco").
  3. Clique com o botão direito do mouse na revisão que você deseja remover. OBSERVAÇÃO: esta é a revisão que você deseja remover, não a que você deseja reverter.
  4. Selecione "Reverter alterações desta revisão".
  5. Clique em "Sim" no prompt.
  6. Atualize o checkout normalmente, mas para "HEAD".
  7. Confirme-o.

Você, então, irá para todos os outros que fizeram check-out e fará com que eles sejam atualizados, e certifique-se de remover todos os novos arquivos.

Além disso, você precisa se certificar de que todos saibam o que essa revisão foi e potencialmente atualizar a descrição.

    
por 11.06.2012 / 16:17
4

Você pode usar o dump / load para essa finalidade.

Você também pode usar o svnsync para fazer um backup em algumas revisões.

Se você tem um grande repositório, leva tempo.

    
por 01.07.2011 / 11:12
3

Para mim (VisualSVN, 30-HEAD) funciona assim:

  del C:\Repositories\MyRepo\revs%bl0ck_qu0te%
  del C:\Repositories\MyRepo\revs%bl0ck_qu0te%
  del C:\Repositories\MyRepo\revs%bl0ck_qu0te%
  del C:\Repositories\MyRepo\revprops%bl0ck_qu0te%
  del C:\Repositories\MyRepo\revprops%bl0ck_qu0te%
  del C:\Repositories\MyRepo\revprops%bl0ck_qu0te%
  echo 27 > C:\Repositories\MyRepo\db\current
  
    
por 02.02.2018 / 14:15
0

Vá até o terminal e navegue até o svpsitory: agora digite

svn update -r "revision number you want to revert"

    
por 15.06.2016 / 09:29