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?

Manu
fonte

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 .

CMS
fonte
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>
Jcoby
fonte
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.

Noah Goodrich
fonte
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