Comecei a usar o Subversion com o TortoiseSVN. Se eu abrir o log e clicar com o botão direito do mouse em uma revisão antiga, vejo duas opções que parecem reverter para uma versão mais antiga: "Atualizar item para revisão" e "Reverter para esta revisão".
Entendo que a atualização para uma revisão mais antiga é usada quando você deseja apenas olhar para uma versão antiga, mas não alterar o repositório. Reverter é quando você realmente errou e deseja que a revisão mais recente no repositório seja igual a uma versão mais antiga.
Digamos que a revisão HEAD seja 100 e eu volte a 95. Ele reverterá a mesclagem da minha cópia de trabalho de volta a 95. Então posso confirmar essa alteração no repositório, o que criaria a revisão 101 correta? Qual é a diferença se eu deveria voltar à revisão 95? Ainda não reverte as alterações das últimas revisões? Estou confuso sobre como o estado da minha cópia de trabalho difere após uma reversão ou atualização para uma revisão mais antiga.
fonte
update to
erevert to/from
tratar as alterações locais (alterações não confirmadas)?Para entender como o estado da sua cópia de trabalho é diferente nos dois cenários, você deve entender o conceito da revisão do BASE :
Sua cópia de trabalho contém um instantâneo de cada arquivo (oculto em uma pasta .svn) nesta revisão do BASE, o que significa que estava na última vez que foi recuperado do repositório . Isso explica por que as cópias de trabalho ocupam o dobro do espaço e como é possível examinar e até reverter as modificações locais sem uma conexão de rede.
Atualizar item para Revisão altera esta revisão base, tornando o BASE desatualizado. Quando você tenta confirmar modificações locais, o SVN notará que seu BASE não corresponde ao HEAD do repositório. A confirmação será recusada até que você faça uma atualização (e possivelmente uma mesclagem) para corrigir isso.
Reverter para revisão não altera BASE. Conceitualmente, é quase o mesmo que editar manualmente o arquivo para corresponder a uma revisão anterior.
fonte
update to
erevert to/from
tratar as alterações locais (alterações não confirmadas)?Os arquivos em sua cópia de trabalho podem parecer exatamente os mesmos depois, mas ainda são ações muito diferentes - o repositório está em um estado completamente diferente e você terá diferentes opções disponíveis depois de reverter do que "atualizar" para uma revisão antiga .
Resumidamente, "atualizar para" afeta apenas sua cópia de trabalho, mas "reverter mesclar e confirmar" afetará o repositório.
Se você "atualizar" para uma revisão antiga, o repositório não mudou: no seu exemplo, a revisão HEAD ainda é 100. Você não precisa confirmar nada, pois está apenas mexendo na sua cópia de trabalho. Se você fizer modificações na sua cópia de trabalho e tentar confirmar, será informado que sua cópia de trabalho está desatualizada e será necessário atualizar antes de confirmar. Se alguém que trabalha no mesmo repositório executar uma "atualização" ou se você fizer o check-out de uma segunda cópia de trabalho, será r100.
No entanto, se você "reverter a mesclagem" para uma revisão antiga, sua cópia de trabalho ainda será baseada no HEAD (supondo que você esteja atualizado) - mas você está criando uma nova revisão para substituir as alterações indesejadas. Você precisa confirmar essas alterações, pois está alterando o repositório. Uma vez feito, quaisquer atualizações ou novas cópias de trabalho baseadas no HEAD serão exibidas na r101, com o conteúdo que você acabou de confirmar.
fonte
Atualize sua cópia de trabalho para a revisão selecionada. Útil se você deseja que sua cópia de trabalho reflita um tempo no passado ou se houve mais confirmações no repositório e você deseja atualizar sua cópia de trabalho uma etapa de cada vez. É melhor atualizar um diretório inteiro em sua cópia de trabalho, não apenas um arquivo; caso contrário, sua cópia de trabalho pode ser inconsistente. Isso é usado para testar uma finalidade específica da revisão. Se o teste foi concluído, você pode usar este comando para testar outra revisão ou usar a Atualização SVN para obter HEAD
Se você deseja desfazer uma alteração anterior permanentemente, use Reverter para esta revisão .
- do TSVN help doc
Se você atualizar sua cópia de trabalho para uma revisão anterior, isso só afetará sua própria cópia de trabalho; depois de fazer algumas alterações e desejar confirmar, você falhará; o TSVN alertará você para atualizar seu WC para a revisão mais recente primeiro Se você reverter para uma revisão, você pode se comprometer com repository.everyone voltará para a rev depois de fazer uma atualização.
fonte
O texto da referência da tartaruga:
Atualizar item para revisão Atualize sua cópia de trabalho para a revisão selecionada. Útil se você deseja que sua cópia de trabalho reflita um tempo no passado ou se houve mais confirmações no repositório e você deseja atualizar sua cópia de trabalho uma etapa de cada vez. É melhor atualizar um diretório inteiro em sua cópia de trabalho, não apenas um arquivo; caso contrário, sua cópia de trabalho pode ser inconsistente.
Se você deseja desfazer uma alteração anterior permanentemente, use Reverter para esta revisão.
Reverter para esta revisão Reverter para uma revisão anterior. Se você fez várias alterações e decide que realmente deseja voltar a como as coisas estavam na revisão N, este é o comando que você precisa. As alterações são desfeitas na sua cópia de trabalho, portanto, esta operação não afeta o repositório até você confirmar as alterações. Observe que isso desfará todas as alterações feitas após a revisão selecionada, substituindo o arquivo / pasta pela versão anterior.
Se sua cópia de trabalho estiver em um estado não modificado, depois de executar esta ação, sua cópia de trabalho será exibida como modificada. Se você já possui alterações locais, esse comando mesclará as alterações desfazer na sua cópia de trabalho.
O que está acontecendo internamente é que o Subversion realiza uma mesclagem inversa de todas as alterações feitas após a revisão selecionada, desfazendo o efeito dessas confirmações anteriores.
Se, após executar esta ação, você decidir que deseja desfazer a desfazer e recuperar sua cópia de trabalho ao estado anterior não modificado, use o TortoiseSVN → Revert no Windows Explorer, que descartará as modificações locais feitas por essa ação de mesclagem reversa.
Se você simplesmente deseja ver como era um arquivo ou pasta em uma revisão anterior, use Atualizar para revisar ou Salvar revisão como ....
fonte
Atualização do @BaltoStar para a sintaxe da revisão:
http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.update.html
Onde 30 é o número da revisão. Espero que esta ajuda!
fonte