Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Adicionadas informacoes sobre geracao de relatorios
Nota
titleAtencao

Esta pagina eh um rascunho

Requisitos

O svntool utiliza alguns recursos externos para seu funcionamento. A lista segue abaixo:

...

Caso deseje não utilizar áreas para os repositórios, utilize o parâmetro de área como vazio, como -Darea="".

Geracao de relatorios

TODO

Espelhamento de repositorios

...

titleIMPORTANTE

...

O SVNTool utiliza duas bibliotecas para produzir relatorios, incluindo elementos graficos. Sao o SvnStat e StatSvn. Porem, o SVNTool abstrai a complexidade de uso desses utilitarios, e para o usuario final a geracao de relatorios se resume a execucao de comandos, como:

Painel

/opt/lm2/apache-ant-1.7.1/bin/ant -f /opt/lm2/svntool/build.xml report.generate -Doutput=public/3pup -Drepo=file:///opt/lm2/data/svn/public/3pupImage Added -Drev=HEAD -Duser=user.admin -Dpass=xxx

Neste exemplo, o SVNTool eh chamado atraves da linha de comando com a opcao "report.generate", com o parametro "-Doutput" apontando para um diretorio de saida, onde serao gerados os relatorios para o repositorio especificado pelo parametro "-Drepo", usando a ultima revisao do repositorio (opcao "-Drev") com o usuario e senha especificados por "-Duser" e "-Dpass", respectivamente.

Um exemplo de saida desses relatorios pode ser conferido em http://3layer.org/svnreport/public/incubator/svntoolImage Added.

Geracao continua de relatorios

Estando em ambiente Windows ou Linux, eh possivel utilizar as ferramentas nativas do Sistema Operacional para produzir continuamente os relatorios do SVNTool.

NO Windows, a linha de comando acima pode ser adicionada a uma entrada no servico Task Scheduler. No Linux o mesmo pode ser feito com o servico Crontab.

Abaixo, um exemplo de configuracao no Crontab no linux, que produz relatorios para diversos repositorios diariamente as 06:00 AM:

Sem Formato


[root@jekyll ~]# crontab -e

#--
# Relatorios diarios do SVN, diariamente as 06:00 AM
00 6 * * * /opt/lm2/svntool/cron.sh 1>> /var/log/cron_log 2>> /var/log/cron_error

[root@jekyll ~]# vim /opt/lm2/svntool/cron.sh

#!/bin/bash -x

# Define o locale para o SVN funcionar. Vide tarefa JBAG2A-20
LC_ALL=en_US.UTF-8
export LC_ALL

#--
# public/3pup
/opt/lm2/apache-ant-1.7.1/bin/ant -f /opt/lm2/svntool/build.xml report.generate -Doutput=public/3pup -Drepo=file:///opt/lm2/data/svn/public/3pup -Drev=HEAD -Duser=user.admin -Dpass=xxx
#--
# public/magoo
/opt/lm2/apache-ant-1.7.1/bin/ant -f /opt/lm2/svntool/build.xml report.generate -Doutput=public/magoo -Drepo=file:///opt/lm2/data/svn/public/magoo -Drev=HEAD -Duser=user.admin -Dpass=xxx

#--
# public/merlin
/opt/lm2/apache-ant-1.7.1/bin/ant -f /opt/lm2/svntool/build.xml report.generate -Doutput=public/merlin -Drepo=file:///opt/lm2/data/svn/public/merlin -Drev=HEAD -Duser=user.admin -Dpass=xxx

#--
# public/mammon
/opt/lm2/apache-ant-1.7.1/bin/ant -f /opt/lm2/svntool/build.xml report.generate -Doutput=public/mammon -Drepo=file:///opt/lm2/data/svn/public/mammon -Drev=HEAD -Duser=user.admin -Dpass=xxx

Espelhamento de repositorios

Aviso
titleIMPORTANTE

O svntool suporta apenas repositorios do tipo FileSystem (FSFS), que sao os mais atuais e o o padrao recomendado pelo Subversion. Se voce utiliza repositorios baseados em BerkleyDB, nao utilize o svntool para fazer espelhamento, pois os resultados sao imprevisiveis.

Aviso
titleIMPORTANTE

O svntool foi projetado para suportar uma estrutura de pastas de dois niveis, ou seja, um diretorio superior que indicam as "areas de repositorios" (parametro -Darea) e, dentro de cada uma dessas areas, os repositorios em si (parametro -Drepo). Ao utilizar uma estrutura com niveis mais profundos de diretorios, o comportamento do svntool pode nao ser o esperado. Entao, muita atencao ao utilizar estruturas de diretorios diferentes dessa:
---Raiz
    +---Area1
       +---Repo1
       +---Repo2
       +---Repo3
       +---RepoN
    +---Area2
       +---Repo11
       +---Repo21
       +---Repo31
       +---RepoN
    +---AreaN

No Windows

TODO

No Linux

No Linux, tem-se duas situacoes para o espelhamento, descritas abaixo:

...

Painel

Wiki Markup
\[root@jekyll resources\]# ssh \-i /opt/lm2/svntool/resources/svntool.key marcelo.mrack@hermes
Last login: Thu Jan 29 17:47:55 2009 from jekyll.lm2.com.br
\[marcelo.mrack@hermes \~\]$ cd /opt/backup
\[marcelo.mrack@hermes backup\]$ mkdir svn
\[marcelo.mrack@hermes backup\]$ pwd
/opt/backup
\[marcelo.mrack@hermes backup\]$ ls \-la
total 16
drwxrwxr-x 3 root          Domain Users 4096 Jan 29 17:56 .
drwxr-xr-x 6 root          root         4096 Jan 29 17:55 ..
drwxr-xr-x 2 marcelo.mrack Domain Users 4096 Jan 29 17:56 svn
\[marcelo.mrack@hermes backup\]$

76. Pronto. Nesse momento é possível realizar a cópia remota de arquivos e pastas de forma segura através do SSH. Isso é a base para a replicação remota que o svntool utiliza com base no Rsync.

...

Painel

ant sync.run -Dsource=lm2/admin -Ddest=marcelo.mrack@hermes:/opt/backup

72. Pronto. No caminio hermes:/opt/backup deve existir uma estrutura idêntica ao repositório de origem, incluindo o nome da area especificada, caso houver. Em outras palavras, a copia espelho estara em hermes:/opt/backup/lm2/admin. Isso pode ser visto abaixo:

Painel

 TODO

xxx.