SVN Backup e restauração de repositórios [Manual]

DominioTXT - Subversion SVN
SVN Backup e restauração de repositórios. 

Bem vindos ao Blog DomínioTXT. 

Como debatido anteriormente no manual “Instalação de um Subversion SVN em Linux”, este sistema é uma ferramenta de suporte para ambientes de Desenvolvimento, agindo como uma forma de banco de dados para os scripts criados pelos Programadores.

Como uma ferramenta similar a um banco de dados, a SVN também possui suas próprias funções de Backup e Restauração de dados, que assim como em um data-base abrange as principais peculiaridade do próprio sistema.

Hoje veremos como efetuar o Backup e a restauração de um repositório SVN.



Descrições e informações sobre os Repositórios SVN.

Os repositórios em SVN são famosos pelo seu absoluto controle sobre as alterações feitas nos códigos (commits ou efetivação), porem o que poucos sabem é que para cada “commit” é atribuído um numero que neste caso é chamado de “Revisão”.

O que as ferramentas de backup do próprio SVN fazem é copiar todo o conteúdo do repositório, o que inclui as informações referentes aos “commits” e as revisões geradas, de forma a não se perder o controle do sistema de versionamento mesmo quando se tenha a necessidade de restaurar um Repositório.

Para descobrir o numero da ultima revisão de um determinado repositório utilize:

# sudo svnlook youngest “caminho do seu repositório”

No exemplo vamos verificar a ultima versão do repositório “projetodominiotxt” :


DominioTXT - SVN YOUGEST


Como visto, temos a ultima versão do nosso repositório, porem podemos dar uma incrementada no nosso script, de forma a se ter maiores informações quanto a ultima versão.

Para que tenhamos informações referente ao nome do autor do ultimo “commit” e data que foi efetuada a atualização, podemos utilizar o comando a seguir:

# sudo svnlook info “caminho do seu repositório”

Este comando retorna a seguintes campos.

  • Usuário.
  • Data.
  • Versão.
  • Mensagem.


DominioTXT - SVN INFO


Na imagem acima podemos ver que o ultimo “commit” do repositório “projetodominiotxt” foi efetuado pelo usuário “admindominiotxt”, na data de 25 de junho de 2015, o numero da versão é 67 e a mensagem referente a modificação foi “Mensagem de teste de commit”.

Também é possível buscar uma determinada versão, sendo que para isso deve-se utilizar o complemento “-r Numero da versão”, para especificar a versão que deseja verificar. Abaixo segue um exemplo.

# sudo svnlook info “caminho do seu repositório” -r 65

Assim como na imagem anterior, neste caso também será apresentada todas as informações da revisão, porem apenas as que fazem referencia a versão de numero 65.

Efetuando Backup do Repositório.

Assim como visto no manual que trata do “backup e restauração do PostgreSql”, o SVN também utiliza o comando “dump” para fazer uma copia completa de um repositório.

A seguir teremos o exemplo do comando que foi aplicado para fazer uma copia completa do nosso repositório, sendo este composto pelo script de chamada do SVN, local do nosso repositório e o destino de onde será armazenado nosso arquivo de backup.

# sudo svnadmin dump /svn/projetodominiotxt > bkp-rev03.r003


DominioTXT - SVN DUMP


Como podemos ver no exemplo, o nosso repositório possui apenas 3 revisões, logo o mesmo apresenta um “Log” referente as três revisões. Porem podem haver casos em que seja necessário efetuar apenas o backup de uma revisão de um projeto, e neste caso você deve utilizar o complemento “-r Numero da versão”, conforme o exemplo anterior.

# sudo svnadmin dump -r 2 /svn/projetodominiotxt > bkp-rev03.r003


DominioTXT - SVN DUMP -R


Também é possível efetuar um backup de um determinado período de revisões, o que é bastante útil para ambientes com um grande fluxo de “commits”, pois desta forma podemos recuperar apenas um intervalo do projeto sem comprometer o desenvolvimento atual.

No exemplo a seguir iremos gerar um arquivo referente as revisões de 1 a 3.

# sudo svnadmin dump -r 1:3 /svn/projetodominiotxt > bkp-rev03.r003

Em alguns casos podemos também efetuar a copia direta de um projeto para um novo repositório, o que acaba se tornando muito útil, pois permite que seja implantado um repositório de testes ou mesmo uma rotina automatizada de backup. No exemplo abaixo vamos efetuar a copia do projeto “projetodominiotxt” para uma repositório de bkp.

# sudo svnadmin hotcopy /svn/projetodominiotxt /svn/projetodominiotxt-bkp

Restaurando um repositório.


Assim como o SVN possui um código próprio para a rotina de backup, o mesmo também possui algo semelhante para o processo de restauração de um Repositório.

Para efetuar a restauração você deve ter o arquivo de backup gerado anteriormente, e acesso ao terminal do seu servidor SVN. Dentro do terminal digite:

# sudo svnadmin load /svn/projetodominiotxt < bkp-rev03.r003

Com este comando estaremos utilizando o arquivo “bkp-rev03.r003” para recuperar o repositório “projetodominiotxt” dentro da nossa pasta da SVN.

Lembrando que ao efetuar este processo, todo o conteúdo armazenado anteriormente no repositório será restaurado e que a rotina efetuara automaticamente todos os “Commits” no novo repositório, deixando assim o mesmo idêntico ao anterior.

A todos o meu singelo agradecimento.


Gostou do Blog, então deixe o seu comentário.
Quer sugerir algum assunto? Notou algo que não confere com o assunto?
Mande sua opinião, sugestão ou reclamação. Contato DomínioTXT.

Deixe seu comentário...