Recuperando a lista de commiters do CVS

junho 6, 2011

Alguns dos projetos, em que estou trabalhando, ficam no CVS. Estou tentando convertê-lo para o Maven sem causar impacto no trabalho dos outros desenvolvedores da equipe. Para isso preciso conseguir fazer o trabalho off-line e só publicar para os outros quando já estiver pronto.

Isso me levou a uma cruzada pessoal para mostrar as vantagens de se usar um Git da vida. No momento, consegui, junto com outros desenvolvedores, adotar o Git em uns projetos mais novos da equipe.

Para que eu consiga usar o Git neste projeto, preciso conseguir fazer uma importação do repositório. E, nesta importação, converter os nomes dos autores do commit para o formato do git.

Minha primeira dificuldade foi conseguir a lista de autores do CVS. Na falta de uma ferramenta melhor, fui para o Terminal:
export CVS_ROOT=:pserver:nome_usuario_cvs@servidor:path_repo
cvs login
cvs checkout MeuProjeto
cvs log > dump_do_log.txt
less dump_do_log.txt | grep "author: ." | awk '{sub(/\;/,"= <>",$5); print $5}' | sort -u > autores_do_meuprojeto.txt

No final eu terei um arquivo assim:
cvs_acdesouza= <>

Agora vem o trabalho de mapear os nomes e emails. Mas isso vai ter que ser manual :(

Agradeço aos autores dos tutoriais e fóruns que me ajudaram:
Tutorial do Awk
Ordenar a lista de usuários e remover as entradas duplicadas;
Remover o ; no nome do usuário.


Tutorial Git

janeiro 14, 2011

Algum tempo atrás eu estava estudando os SCMs distribuídos mais conhecidos: Git, Hg, Bazaar. E, na época tinha me decidido pelo Bazaar.

Claro, que o mais simples(Bazaar) de usar, instalar no Windows e com ferramenta gráfica não tem metade da aceitação que o Git apresenta. Atribuo todo o sucesso do Git ao GitHub. Ele é imbatível.

Portanto, me vi obrigado a aprender sobre o Git e lendo o Reddit, hoje, encontrei isso: A guided tour that walks through the fundamentals of Git

Poxa! Custava ter encontrado esse tutorial antes?


[],
AC


Eclispse não funciona com o Bazaar 1.6 quando instalado com o Windows standalone installer

setembro 4, 2008

Se você estava tentando usar a nova versão do Bazaar, e optou pelo Windows standalone installer, acredito que terá o mesmo problema que eu ao tentar usar o plugin para o Eclipse:

A incapacidade de instalar o plugin XML-Output na versão 1.6 do Bazaar, quando usado o Windows standalone installer.

Tem outra mensagem, no Lanuchpad, do XML-Output falando do problema quando o Bazaar 1.6 foi instalando usando o Windows standalone installer.

O problema ocorre porque o instalador veio sem o arquivo SimpleXMLRPCServer.py, para resolver basta seguir os passos abaixo:

  1. Baixar o Bazaar 1.6 – Windows standalone installer;
  2. Executar o instalador;
  3. Baixar o plugin XML-Output 0.6.2, que é a versão mais atual quando eu escrevi este post.
  4. Descompactar o arquivo, bzr-xmloutput-0.6.2.tar.gz, para uma pasta na sua máquina;
  5. Copie o conteúdo da pasta para %BAZAAR_HOME%\plugins\xmloutput, onde %BAZAAR_HOME% é o lugar onde você instalou o Bazaar.
  6. Baixe o arquivo SimpleXMLRPCServer.py e copie-o para a pasta %BAZAAR_HOME%\plugins\xmloutput

Para confirmar que deu tudo certo abre um console e digite o comando: bzr plugins


O resultado deve ser algo parecido com:

————————————————————————————–

D:\Documents and Settings\acdesouza>bzr plugins
bzrtools 1.6.0
    Various useful plugins for working with bzr.

launchpad
    Launchpad.net integration plugin for Bazaar.

qbzr 0.9.3
    QBzr - Qt-based front end for Bazaar

svn 0.4.11
    Support for Subversion branches

xmloutput 0.6.2
    This plugin provides xml output for status, log, annotate, missing, info, version and plugins

————————————————————————————–

Pronto, seu Bazaar 1.6 já está funcionado e pronto para ser usado com o Eclipse.

Dúvidas e sugestões, espero nos comentários.


Instalação do Subversion no Ubuntu 7.04 – Feisty Fawn

agosto 8, 2007

Terminei de instalar o servidor, dos meus freelances, com o Subversion. E para ter certeza de que não vou esquecer como fazer isso, estou escrevendo o que eu fiz dos dois tutoriais que eu segui.

  1. Instalar o Ubuntu Server sem selecionar as opções de LAMP ou DNS Server
  2. No meu caso, que tem um HD de 40GB, dividi as partições da seguinte forma:
    • 255MB, swap
    • 05GB, /
    • 04GB, /usr
    • 10GB, /srv
    • 20GB, /home

    A primeira informação é o tamanho da partição e a segunda o ponto de montagem. Tirando a partição swap, estou usando o sistema de arquivos EXT3 em todas elas.

  3. Instalar o Apache e o SVN:
    • sudo apt-get install apache2 subversion libapache2-svn
  4. Criar o diretório onde ficarão os repositórios do SVN:
    • sudo mkdir /srv/svn
  5. Criar o repositório. Aqui seria um bom momento para restaurar o backup, quando for o caso:
    • sudo svnadmin create /srv/svn/{repositorio}
  6. Dar acesso ao Apache para esses diretórios:
    • sudo chown -R www-data:www-data /srv/svn
  7. Configurar o módulo webdav do subversion
    1. sudo vim /etc/apache2/mods-enabled/dav_svn.conf
    2. Descomentar a tag <Location /svn>. No início e no fim do arquivo.
    3. Descomentar a opção DAV svn
    4. Descomentar a opção SVNParentPath /var/lib/svn e mudar o caminho para a localização do repositório: /srv/svn. Foi escolhido essa ao invés da SVNPath para termos mais de um repositório nesta mesma pasta.
    5. Descomentar a opção AuthzSVNAccessFile /etc/apache2/dav_svn.authz. Para habilitar o controle de acesso aos projetos usando o arquivo informado. Mais informação sobre como criar o arquivo podem ser vistas no livro vermelho do Subversion, na seção Per-Directory Access Control. Infelizmente, na versão em português este capítulo ainda não foi traduzido.
    6. Descomentar, para habilitar a autenticação, as três linhas:
      1. AuthType Basic
      2. AuthName “Subversion Repository”
      3. AuthUserFile /etc/apache2/dav_svn.passwd
      4. Adicione a linha: Require valid-user
      5. Salve o arquivo. Para isso, aperte a tecla ESC digite “:wq” sem as aspas e pressione enter
  8. Crie um usuário para acessr o SVN:
    • sudo htpasswd -cm /etc/apache2/dav_svn.passwd <username>
    • O parâmetro -c só é necessário para o primeiro usuário, pois é usado para criar o arquivo. Para os seguintes apenas o -m resolve, que é usado para criptografar a senha com o MD5.
  9. Reiniciar o apache
    • sudo /etc/init.d/apache2 restart

Estou querendo fazer melhorias como:

Alguém teria alguma sugestão ou correção para esse tutorial ou para o script?

Fontes:


Shell-Script para backup automático dos repositórios do Subversion

agosto 6, 2007

Fiz um script para backup dos repositórios do Subversion.

Este script está sendo usado no Ubuntu Linux Server versão 6.10 7.04(atualizei o servidor) , mas deve funcionar na maioria das outras distros. Mesmos as que não derivam o Debian.

Para usá-lo siga os seguintes passos:

  1. Copie o script para o servidor;
  2. Configure com os diretórios de sua preferência. Isso é feito modificando as variáveis:
    1. SVN_ROOT_REPOS: diretório onde estão os repositórios do SVN;
    2. BACKUP_PATH: onde será criado os arquivos de backup.
  3. Dê permissão de execução para o scrip:
    1. chmod +x svn_backup.sh

Como melhorias que eu gostaria de adicionar:

  • Leonardo: Apagar os arquivos de dump depois que eles forem compactados. Ok
  • Garantir que somente os arquivos de dump serão gravados no zip. Ok
  • Agendar o script no cron;
  • Copiar o arquivo zipado para outro servidor;
  • Gerar um Hash MD5 para o arquivo de backup e enviar junto do arquivo;
  • Testar o arquivo recebido usando o Hash MD5.

Vocês teriam alguma sugestão? Outra funcionalidade que eu não tenha pensado? Uma forma de fazer as mesmas coisas mais facilmente?

Fontes:

P.S.: Como o WordPress não deixa eu subir arquivos .sh coloquei a extensão “doc”.

UPDATE: Saiu no BR-Linux um post com um script, em Python, para backup do Subversion e Trac.


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.