Administração do SVN
IntroduçãoEsse procedimento tem o objetivo instruir a administração básica do SVN no processo de sincronizar repositórios em diferentes localidades.
- Servidor Cairo - 172.20.30.230 = Repositório de todos os projetos, exceto NFe no qual ele é apenas um espelho.
- Servidor SJC - 172.20.40.190 = Repositório apenas do NFe, espelhado no Cairo.
- Comando utilizado “svnsync”
O sincronismo entre repositórios ocorre entre um repositório de origem e um repositório de destino. No caso de Finnet o repositório de origem é o repositório utilizado para comitar e subir as alterações e o repositório de destino, é uma copia da origem, e é utilizado para se fazer o checkout. Para realizar o sincronismo, primeiramente, devemos criar o arquivo “pre-revprop-change” e acrescentar o seguinte conteúdo, tanto no destino como na origem.
# cd /repo_dir/hooks/
# vi pre-revprop-change
#!/bin/bash
echo 0
Após a criação do arquivo setar a permissão abaixo na origem e no destino
$ chmod a+x hooks/pre-revprop-change
Depois editar o “conf/svnserve.conf conforme a indicação abaixo:
No repositório de Origem onde os dados são comitados a configuração será, leitura para acesso anônimo e leitura/escrita para acesso autenticado, conforme mostrado abaixo
$ cd /repo_dir/conf/
$ vi svnserve.conf
anon-access = read
auth-access = write
No repositório de Destino, utilizado para fazer o checkout a configuração será, leitura/escrita para acesso anônimo e deverá ser comentada a linha de acesso autorizado.
$ cd /repo_dir/conf/
$ vi svnserve.conf
anon-access = write
# auth-access = write
Após os procedimentos acima, o ambiente esta preparado e já podemos iniciar o sincronismo. o SVN trabalha fechando um túnel entre o Destino e a Origem. Abaixo um exemplo do comando a ser utilizado.
$ svnsync init svn://172.20.30.16/media/Canada/repos/nfe2/ svn://172.20.40.190/home/desenv/repositorio/nfe
(Repositório de Destino) (Repositório de Origem)
Ao fechar o túnel o sincronismo pode ser iniciar com o comando abaixo. Requisitando apenas o sincronismo para o destino.
$ svnsync sync svn://172.20.30.16/media/Canada/repos/nfe2/
No início do sincronismo o repositório de destino estra no estado de lock para previnir alterações e checkouts. Caso ocorra algum problema no sincronismo e ele seja interrompido antes do termino normal seu estado continua como lock. Os futuros sincronismos retornaram um erro com a informação “held by”. Será preciso “destravar” o repositório com o comando abaixo:
$ svn pdel --revprop -r 0 svn:sync-lock file://`pwd`/dest
Outra necessidada pode ser a mudança do endereço de Origem gravado no repositório de Destino. para isso devemos utilizar o comando abaixo:
$ svn propset svn:sync-from-url --revprop -r 0 svn://nova_origem svn://destino_a_ser_alterado
$ svn propset svn:sync-from-url --revprop -r 0 svn://172.20.30.230/home/desenv/repositorio/nfe/ svn://172.20.30.168/home/desenv/repositorio/nfe/
Nenhum comentário:
Postar um comentário