Desfazendo um commit no TortoiseSVN


99

Eu cometi um monte de arquivos (dezenas de arquivos em pastas diferentes) por acidente. Qual é a maneira mais fácil, limpa (e segura!) De 'desfazer' aquele commit sem ter que deletar os arquivos do meu diretório de trabalho?

Respostas:


151

Vá para Mostrar Tela de Log , selecione a revisão que deseja desfazer, clique com o botão direito e selecione Reverter alterações desta revisão , isso fará uma fusão reversa .


8
Isso é o que eu esperava, mas nenhum sinal no último lançamento da tartaruga
Anthony Main,

39
Não se esqueça de comprometer depois, porque ele apenas se funde localmente.
pihentagy

5
Certifique-se de atualizar sua cópia de trabalho antes de fazer isso, caso contrário, nada acontecerá.
Florian Brucker,

1
Documentos sobre este procedimento: tortoisesvn.net/docs/release/TortoiseSVN_en/…
Costa

TortoiseSVN> Mostrar Log> <selecione sua versão antiga>> Reverter para esta revisão tortoisesvn.net/docs/nightly/TortoiseSVN_en/…
Satyendra

15

Você pode precisar usar a linha de comando, mas pode usar o comando SVN merge e especificar as revisões ao contrário para reverter efetivamente um commit. Supondo que seu commit incorreto fosse r1123, você faria:

svn merge -r1123:1122 <url of your working copy>

Nada muda quando eu faço assim: svn merge -r 1880: 1879 server / myproject / branches / problem42 Eu tentei ambos com espaço como este "-r 1880: 1879" e sem espaço como este "-r1880: 1879". Se eu executar "svn st" depois, nada mudou.
neoneye

2

Você pode reverter sua cópia de trabalho para a revisão antes do commit. Uma vez que você tenha revertido sua cópia de trabalho, então simplesmente envie as alterações e você irá efetivamente reverter o commit acidental.

Em um caso como o seu especificamente, eu provavelmente verificaria a revisão que desejo reverter para uma nova cópia de trabalho e então enviaria a cópia de trabalho para a revisão principal.


4
Isso não lhe diria que sua revisão está desatualizada e exige que você atualize antes de enviar? Acho que você precisa mesclar a revisão anterior em vez de apenas atualizar para a antiga.
Mnebuerquo

Além disso, essa estratégia assume que o commit incorreto é o anterior. Você pode querer desfazer algumas alterações que aconteceram há algum tempo, sem desfazer todas elas.
jpaugh
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.