Perdemos nosso servidor SVN... qual é o próximo passo?

Perdemos nosso servidor SVN... qual é o próximo passo?

Então... perdemos nosso repositório SVN. Devido a circunstâncias infelizes, também não temos nenhum backup viável.

O que fazer? Basta fazer uma "exportação svn" de alguém com a atualização mais recente e começar de novo? Existe alguma maneira de recuperar algum histórico? Ou conectar nossos checkouts locais a um novo servidor?

Responder1

Se tudo o que você tem é um checkout, você tem um instantâneo do código, mas nenhum histórico.

Você pode criar um novo repositório a partir disso. Quanto a conectar os checkouts existentes ao novo repositório depois de configurá-lo, provavelmente é mais problemático do que vale a pena. Será mais fácil criar um novo repositório a partir do checkout mais antigo e, em seguida, confirmar as alterações dos checkouts mais recentes como atualizações.

Quanto à recuperação do histórico, não vejo como isso seja possível sem um despejo do repositório (via dump do svnadmin) em algum momento. Mesmo um despejo antigo forneceria qualquer histórico desde a criação do repositório até onde o despejo foi feito.

Talvez alguém tenha usado git-svn no seu repositório em algum momento? Isso pode ter preservado um pouco da história, mas colocá-la de volta em um novo repositório do Subversion pode não ser fácil.

A recuperação de dados é cara, mas também pode ser uma opção se o dispositivo de armazenamento em que seu repositório estava não tiver sido fisicamente destruído ou sobrescrito de forma destrutiva (e não fosse um SSD).

Responder2

Se você realmente perdeu seu repositório, sem backups, então sim, acabou. Não há mágica que possa restaurar dados verdadeiramente perdidos.

Portanto, se você tiver uma cópia de trabalho de alguém, poderá criar um novo repositório e adicionar os arquivos a ele. Você perde toda a história (obviamente), mas a história já foi perdida.

Você pode enviar o disco rígido para uma empresa de recuperação para tentar restaurar todos os dados. Depois de ter o repositório (ou pelo menos os diretórios db/revs e db/revprops), você pode recriar o repositório a partir deles (copiando-os para o diretório de um novo repositório). Se você não tiver o banco de dados inteiro, as coisas serão um pouco mais complicadas, mas ainda é possível restaurar o restante dos dados - talvez seja necessário enviar tudo para a collabnet e obter suporte deles para restaure os arquivos de dados mutilados em um repositório novo e funcional.

Agora, você diz "svn export" de alguém com a atualização mais recente... isso sugere que a pessoa tem uma cópia de backup da qual você pode exportar. É esse o caso ou você estava confundindo com uma cópia de trabalho?

Responder3

Como Mark está dizendo acima, se você não tiver um dump do repositório (do servidor), não poderá construir o histórico. Um checkout SVN contém apenas a dica de onde foi verificado. Desculpe, você é SOL. Acho que é por isso que as pessoas gostam de controle de origem distribuído. Em nossa empresa eu configurei para enviar diferenças de SVN para o Amazon S3 duas vezes por dia.

Responder4

Primeiro: não ter backup de um SVN-Repo é uma dor e nunca deveria acontecer. Mas, o mesmo aconteceu comigo. Comecei a adicionar milhares de arquivos novamente, arquivo por arquivo, porque não quero fazer check-in de arquivos temporários ou outros arquivos sem origem.

Quase toda a história está perdida. Masnem o último estado de check-in foi perdido! Consegui obter o último estado de checkin, então o novo repo era semelhante ao antigo e obtive também a última diferença!

Esta é a minha receita:

  1. faça backup do seu checkout local
  2. limpe seu checkout local, veja:captura de tela svn-cleanup_to_last_state
  3. criar novo repositório
  4. checkout do novo repositório em uma nova pasta vazia
  5. copie a cópia limpa antiga para a nova pasta
  6. adicione simplesmente todos os arquivos
  7. cometê-lo
  8. substitua sua nova pasta de checkout pelo backup de 1.

agora você tem todos os arquivos como antes, com a última diferença e apenas os arquivos versionados, como antes.

informação relacionada