Pergunta

Excluímos acidentalmente a pasta 'tags' do nosso repositório de subversão, onde pretendemos excluir uma tag específica. Qual é a maneira mais fácil de recuperar a pasta 'tags'?

Usamos o Tortoisesvn como nosso cliente e pensei que, quando vou ao navegador repo e mostrar log, haverá algo como "reverter alterações desta revisão" da mesma forma que você pode ver em uma caixa de diálogo semelhante em sua cópia de trabalho. Mas não existe esse comando lá ...

Foi útil?

Solução

Basta copiar a pasta excluída de volta de uma revisão anterior.

No navegador do repositório, clique no botão rotulado (no canto superior direito) para mostrar a uma revisão que sua pasta ainda existe, clique com o botão direito do mouse na pasta e selecione "Copiar para ..." e digite o caminho lá Quer que a pasta seja recriada (provavelmente o mesmo caminho que já está na caixa de texto).

Outras dicas

Para os entusiastas da linha de comando:

  • Primeiro encontre o número de revisão onde seu delete aconteceu:

    svn log -v http://svnserver/path/to/folderContainingDeletedFolder
    

Digamos que você ache que o diretório foi excluído na revisão 999 (btw: você pode achar mais fácil encontrar o número da revisão com o navegador SVN Repo)

  • Copie a pasta da revisão menos 1

    svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
    

Voilà você terminou!

No seu caso, isso pode ser:

    svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"

A maioria dessas respostas funcionará até certo ponto, mas a resposta correta é de Daniel. Faça uma mesclagem reversa. Dessa forma, você mantém o histórico da versão.

svn merge -r R1:R2

Onde R1 é a revisão em que você está e R2 é a revisão que contém o arquivo/pasta excluído.

Você precisará fazer um mesclagem reversa.

Para detalhes sobre como fazê -lo (e praticamente qualquer outra coisa que você desejar ou precisar fazer com o SVN), o livro oficial está disponível conectados.

Seguindo a resposta de Raudi, que funcionou para mim após esta revisão.

Alguns clientes SVN podem precisar do número de revisão especificado usando o parâmetro -R Revisão em vez de usar @ após a pasta da seguinte forma:

svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"

Vamos para Repository Browser do seu repository, clique com o botão direito do mouse na pasta pai onde seu pasta excluída existia. Agora, Show Log da pasta pai e selecione a revisão anterior, onde você cometeu a operação de exclusão. Você terá uma lista e clicará com o botão direito do mouse na pasta a partir das informações de revisão e selecione Update to this Revision.

Você terminou

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