Arquivo da tag: subversion

Reintegrando um branch no SVN

No meu trabalho utilizamos o excelente Subversion já há algum tempo (nem gosto de lembrar da época de zipar aquivos, colocar em uma pasta compartilhada da rede, nomear os zips com a data, sua cópia do projeto sempre diferente das dos colegas etc e tal).

Mas só há algum tempo começamos a nos organizar um pouco melhor e utilizar o esquema de trunk, branches e tags.

E um problema surgiu ao tentarmos reintegrar um branch ao trunk:

Retrieval of mergeinfo unsupported

Que diabos é isto? Após pesquisar no oráculo descobri que se trata de uma atualização do Subversion ocorrida entre as versões 1.4 e 1.5 que adicionaram novas funcionalidades.

Entretanto, para que estas funcionalidades sejam utilizadas é necessário atualizar seu repositório através do comando svnadmin upgrade:

svnadmin upgrade caminho_do_repositorio

Feito isto, tudo ok!

Otimizando o TortoiseSVN

Ainda me admiro com a capacidade do Windows de se tornar mais lento a cada dia que passa.  Mas a culpa não é apenas do SO e sua permissividade com que trata os processos de terceiros. Bom, talvez seja.  Enfim, notei que o meu sistema fica uma carroça todo reboot, e um dos culpados é o processo TSVNCache.exe.

Felizmente alguém já enfrentou este problema, e ele é resolvido com os seguintes passos:

  • Abrir o menu de contexto e entrar na opção settings do submenu do TortoiseSVN;
  • Entrar no item icon overlays;
  • Editar as caixas Exclude Paths e Include Paths.

TortoiseSVN Settings

Exclua o máximo que puder e inclua o mínimo possível. Na minha máquina coloquei o seguinte:

Exclude Paths:
C:\*

Include Paths:
C:\Documents and Settings\seiti\Meus documentos\Workspace*

Agora mate o processo TSVCache.exe ou reinicie a máquina.

Subversion no Qnap TS-109

Após comprar meu NAS Qnap TS-109 e fuçar suas configurações, dar uma olhada no sistema de arquivos, ligar o MySQL, o FTP e o Apache, percebi que seria uma boa configurar um servidor Subversion nele.

Após consultar o Oráculo encontrei dois sites muito úteis: o Wiki e o Fórum da Qnap.Visitando o fórum percebi que existe uma maneira bem prática de se instalar um aplicativo qualquer no NAS. É só usar o IPKG.

O ipkg é um gerenciador de pacotes no estilo apt-get e yum, mas voltado para dispositivos móveis. Como a arquitetura do meu NAS é ARM, similar aos handhelds que comumente rodam o ipkg, a própria Qnap adicionou suporte à este gerenciador de pacotes, denominando o pacote QPKG.

Para adicionar suporte ao ipkg foi bem simples, foi só atualizar o firmware do NAS, e depois seguir as instruções que o próprio site da Qnap oferece.

Instalado o QPKG, ficou bem simples instalar o Subversion:

#ipkg update
#ipkg install svn

E está instalado!

Repos

Instalado o Subversion, criei um diretória para conter o repositório que guardará meus dados. Para isto basta criar um Network Share,  que chamei de  Repos. Para criar basta entrar na página web do seu NAS e ir em Administration → Network Share Management. Por que não direto no shell? É por que os diretórios criados pela interface do NAS ficam disponíveis para o FTP, backup, Web File Manager, ACLs, sem dores de cabeça. Os diretórios criados assim ficam disponíveis como links simbólicos em /share.

Criado o diretório, foi só transformá-lo em um repositório SVN:

#svnadmin create /share/Repos

Daemon

Falta apenas ligar um daemon para que o SVN fique ativo a cada reboot. Para que isto funcione, criei um script autorun.sh no diretório de configuração do NAS. Este diretório reside na memória flash do danado, então é necessário montá-lo, criar o script, tornar o script executável, desmontá-lo. E foi o que fiz:

# mount -t ext2 /dev/mtdblock5 /tmp/config
# vi /tmp/config/autorun.sh

Editei o arquivo com o Vi, inserindo o seguinte conteúdo:

#!/bin/sh

#sym-link /opt to /opt
rm -rf /opt
ln -sf /share/MD0_DATA/.qpkg/Optware /opt

#export PATH
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin/opt/bin:/opt/sbin'

#run Optware packages start scripts
for optscript in `ls /opt/etc/init.d/S* | grep -v '~' | sort`
${optscript}
done
# chmod +x /tmp/config/autorun.sh
# umount /tmp/config

Isto faz com que quaisquer scripts que residam em /opt/etc/init.d/, e cujo nome comece com S, sejam rodados em ordem alfanumérica.

Só faltou criar o script que inicia o daemon do SVN:

#mkdir /opt/etc/init.d
#vi /opt/etc/init.d/S01svnserve

Com o seguinte conteúdo:

/opt/bin/svnserve -d -r /share/Repos

Testei em meu laptop com um:

svn list svn://IPdoNAS/

E tudo ok!

Fechando

O Qnap TS-109 me surpreendeu por sua flexibilidade. Muitos dispositivos por aí rodam com Linux embarcado, mas poucos se preocupam em oferecer ao usuário a possibilidade de extrair mais deste excelente SO, não se diferenciando de produtos que rodam com SO proprietário.

Mas o TS-109 é uma exceção. Só o fato de disponibilizar os pacotes Optware através do ipkg já se abrem as portas para inúmeros aplicativos, dentre eles o Subversion.

Subversion Notify for Windows

Você desenvolve sistemas. Trabalha em uma equipe maior que uma pessoa. Decidiu utilizar o Subversion para controlar versões do projeto e também para facilitar o trabalho em equipe.

Infelizmente você programa no Windows, seu servidor é Windows, e todos os hooks estão escritos em Perl e só funcionam em *nix.

Seus problemas acabaram! Mudar para o Team System? Nem pensar! Instale o Subversion Notify e seja feliz!

Agora consigo receber emails com os commits e estabelecer uma política para os textos de log dos mesmos.