Configurando Eclipse SVN (Subclipse) com JavaHL (JNI)

Tags: , , — August 7, 2008 @ 3:54 pm

Configurar o plugin subclipse para conectar com um repositório Subversion utilizando-se JavaHL pode dar certo trabalho, dependendo de como e onde o Eclipse foi instalado. Porém, com poucos passos podemos configurá-lo sem problemas.

Utilizar JavaHL como conector para o subclipse, ao invés de SVNKit, possibilita uma melhor integração quando você utilizando tanto comandos svn por linha de comando como com o Eclipse pois os conectores estarão em sincronia com seu cliente Subversion.

Primeiramente, instale os cliente subversion e os conectores java com seu gerenciador de pacotes. No Debian e Ubuntu o comando será como a seguir:

# aptitude install subversion libsvn1 libsvn-java

Então instale normalmente o plugin subclipse em seu Eclipse, juntamente com o conector Nativo JavaHL. O update-site e instruções para instalação podem ser encontrados na página do subclipse. Após isso, edite seu eclipse.ini (deve estar localizado no mesmo diretório que o Eclipse foi instalado) e adicione a linha abaixo ao final do arquivo:

-Djava.library.path=/usr/lib/jni

Reinicie o Eclipse e verifique se JavaHL (JNI) está selecionado em Menu -> Window -> Preferences -> Team -> SVN-> SVN interface:

Selecionando JavaHL (JNI) como conector SVN para o Subclipse

Pronto, após isto você poderá importar ou compartilhar seus projetos controlados por Subversion a partir do Eclipse.

Veja os manuais para detalhes de como utilizar o plugin Subclipse ou os comandos e conceitos do Subversion.

Fonte: http://ahtik.com/blog/2008/01/10/configuring-eclipse-svn-subclipse-to-use-javahljni/

Clonando repositórios Subversion remotos com svnsync

Tags: , — June 1, 2008 @ 1:00 pm

Clonar ou criar um mirror de um repositório svn pode ser um problema caso o usuário não tenha acesso ao servidor onde o repositório é hospedado, uma vez que o comando svnadmin (que faz o dump e load) trabalha apenas com o caminho local para o servidor.

Como parte integrante do pacote Subversion desde a versão 1.4, o svncync foi desenvolvido para facilitar e automatizar o trabalho de criar cópias ou mirrors de repositórios svn, precisando apenas de acesso de leitura ao repositório de origem.

O svnsync trabalha com URLs, assim não é necessário acesso ao sistema de arquivos do servidor de origem nem do destino, e apenas é necessário acesso de escrita (para commits) no servidor destino, e de um hook script que pode ser facilmente criado. Veja os passos a seguir:

# crie um novo repositorio:
svnadmin create /CAMINHO/DESTINO
# crie um hook script pre-commit-hook vazio:
echo '#!/bin/bash' > /CAMINHO/DESTINO/hooks/pre-revprop-change
# torne o script executável:
chmod +x /CAMINHO/DESTINO/hooks/pre-revprop-change

Note que, se estiver contratando repositórios Subversion de uma empresa de hospedagem e não possuir acesso ao sistema de arquivos, basta solicitar ao seu suporte para criar o hook script como acima em seu novo repositório.

Assim que o repositório destino estiver criado, basta inicializar a conexão entre o repositório origem e destino, e sincronizar:

# inicializar a conexão dos repositorios:
svnsync init file:///CAMINHO/DESTINO url://ORIGEM
# sincronizar:
svnsync sync file:///CAMINHO/DESTINO

Sendo url://ORIGEM a url de acesso do repositório o qual se deseja clonar.

Como pode ver, o svnsync, trabalha com URLs, assim é possível utilizá-lo com quaisquer dois repositórios, local ou remoto, e inclusive com qualquer protocolo (file://, http://, svn://, svn+ssh://). No exemplo utilizei file:// para demonstrar como trataria para clonar um repositório remoto em um local, mas o repositório destino também pode ser remoto, sem problemas, desde que haja permissão de escrita e o hook script pre-revprop-change.

Fonte: http://www.thoughtspark.org/node/10