Pergunta

Um problema que encontrei há algum tempo e nunca encontrei uma boa solução para ...

Digamos que você tenha feito check-out de uma cópia de trabalho do Subversion na revisão 7500 e o disco que contém o repositório atual morre.Você tem um backup do repositório, digamos, na revisão 7450.É fácil restaurar o backup do repositório, mas qualquer tentativa de usar a cópia de trabalho nele gera um erro dizendo que a revisão 7500 não existe no repositório.

Qual é a melhor maneira de verificar uma revisão gigantesca para trazer o conteúdo do repositório para corresponder ao conteúdo da cópia de trabalho e fazer com que a cópia de trabalho volte a um estado funcional?

(Idealmente, eu gostaria de algo mais fácil do que ter que verificar uma nova cópia de trabalho e depois copiar todos os arquivos manualmente - acho que na época as cópias de trabalho eram usadas para gerenciar a configuração de servidores, então foi uma verdadeira dor de cabeça ter para verificar cópias de trabalho limpas)

Foi útil?

Solução

Você pode verificar uma cópia rev.7450 em algum lugar e exportar sua cópia 7500 (para remover as pastas .svn).Arraste a cópia exportada (que é a cópia mais recente) sobre a cópia 7450.Todos os novos arquivos devem simplesmente substituir os mais antigos, deixando as pastas .svn iguais.

O Subversion assumirá que você acabou de fazer algumas alterações em 7450, e o próximo check-in irá defini-lo como 7451.

Outras dicas

Faça um novo checkout em uma pasta diferente e use um programa diff para criar um patch.aplique o patch à sua nova cópia de trabalho.

Se você tiver certeza de que possui a versão mais recente em seu diretório, faça o seguinte:

  1. Exclua o item do repositório
  2. Exclua as referências SVN da sua cópia
  3. Faça check-in do seu código como uma nova cópia.
  4. Confira o código que você acabou de fazer check-in

Você pode preencher os números de revisão ausentes carregando um arquivo de despejo com várias revisões vazias.Há respostas discutindo como fazer isso em Como posso alterar o número de revisão de um repositório.Carregue todas as revisões, exceto uma, desta forma, então você pode simplesmente verificar todas as suas alterações em uma última revisão gigante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top