desculpe-me por usar um pouco de espaço apenas em uma reiteração da resposta dada anteriormente - mas isso é algo com o qual sempre acabo tendo problemas.
Digamos que atualizei os arquivos locais para a revisão mais recente, que é 854. Então, gostaria de obter uma revisão mais antiga - a versão do arquivo de poucas revisões anteriores, digamos a revisão 851.
A cópia funcionaria:
svn copy -r 851 svn+ssh://<repository URL>/l3toks.dtx ./l3toks.dtx
.. no entanto, não posso ser incomodado grepping para o URL do repo :)
A atualização aparentemente pode funcionar:
svn up -r 851 ./l3toks.dtx
... no entanto, também marca a cópia local como "recém-finalizada", ou melhor, "igual à revisão on-line" (ou seja, no Tortoise / RabbitVCS você recebe uma marca de seleção verde OK) - o que significa que você não pode fazer svn ci -m "rolled back to r 851"
: simplesmente porque o local subversion
O executável não notará nenhuma alteração local e não será obrigado a fazer upload de nada para o repositório online.
E, como já respondemos, a mesclagem reversa funciona - mas, neste caso, não se deve confiar na sintaxe do atalho; mas especifique especificamente:
svn merge -r HEAD:851 l3toks.dtx
--- Reverse-merging r854 through r852 into 'l3toks.dtx':
U l3toks.dtx
Devo admitir - nunca entenderia a frase " fusão reversa de r854 a r852 em arquivo " como " Acabei de obter o r851 do seu arquivo e sobrescrito o que você tinha anteriormente localmente - e está marcada como diferente da última revisão on-line, então você pode verificar on-line novamente como uma nova revisão de " reversão" ", mas acho que (e espero :)) é isso que faz :)
Depois disso, pode-se usar svn diff
para uma rápida verificação se obtivemos a revisão correta localmente; e também, o arquivo será marcado com um ponto de exclamação vermelho no Tortoise / RabbitVCS (ou seja, diferente da última versão confirmada) e, portanto, svn ci -m "rolled back to r 851"
poderá ser executado dessa vez.
Além disso, observe que, se você finalmente mudar de idéia após a mesclagem reversa ( ou seja, de qualquer forma, você deseja continuar trabalhando na revisão HEAD mais recente, aqui 854 - depois de voltar para o 851 localmente, mas ainda não cometeu a reversão). ), você não deve usar svn up
, porque simplesmente diz que já está " Na revisão 854 "; use em vez disso svn revert --recursive .
ou similar ...
Felicidades!
Ref: Como reverter alterações usando o Subversion - Jacob Wright - Flex, AIR, PHP, etc.
EDIT: ... e, aparentemente, o mesmo efeito que svn merge -r HEAD:851 l3toks.dtx
pode ser alcançado com:
svn export -r 851 l3toks.dtx
A l3toks.dtx
Export complete.