Tag: svn

Clonando um repositório do Subversion (SVN) no Linux

Você pode precisar clonar (fazer uma cópia) de um repositório do SVN por "n" motivos. Não vou falar sobre os motivos, mas sim como fazer isso no Linux.

#CRIE O NOVO REPOSITORIO
svnadmin create RepositorioClone

#FAÇA UM DUMP (BACKUP) DO REPOSITORIO OROGINAL
svnadmin dump /var/svn-repositories/RepositorioOriginal > /root/RepositorioOriginal.dump

#ALTERE O DONO DO DIRETORIO DOS REPOSITORIOS
chown -R apache:apache /var/svn-repositories

#RESTAURE O DUMP QUE VOCE FEZ ANTERIORMENTE
svnadmin load /var/svn-repositories/RepositorioClone/ < /root/RepositorioOriginal.dump

A restauração demora muito. Dependendo do tamanho do repositório, pode levar horas! Então esteja preparado para esperar.

Segundo as pesquisas que fiz, aparentemente apenas copiar o diretório do repositório teria o efeito desejado, mas já que existe uma ferramenta apropriada para isso, acredito que seja mais seguro.

Fonte: http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/clone-a-svn-repository-258


Como utilizar os diretórios TRUNK, TAGS e BRANCHES no Subversion (SVN)

Essa era uma dúvida minha e também pode ser a sua. O Subversion (SVN) tem uma estrutura recomendada. Criar os diretórios TRUNK, TAGS e BRANCHES na raiz do projeto.

Lembre-se: é uma estrutura recomendada. Isso não quer dizer que você é obrigado a utilizar.

O diretório TRUNK

È onde vão todos os commits do dia-a-dia. Os desenvolvedores enviam suas revisões diretametente para essa pasta.

O diretório BRANCHES

Quando a equipe de desenvolvimento decide que a versão está pronta, uma cópia é feita com o nome da versão (Ex.: 1.0, 2.1 etc.) na pasta BRANCHES. Essa versão é testada exaustivamente, e nada novo é criado. Apenas bugs são resolvidos.

O diretório TAGS

Assim que todos os bugs do BRANCH forem resolvidos, a pasta é copiada para o TAGS. E a versão final é liberada. Nada mais é modificado nessa versão.

Quando criar um BRANCH?

Existem algum sistemas que você pode escolher para o seu projeto:

  • O sistema "sem BRANCHES"
    Nesse sistema, só existe a pasta TRUNK e tudo é comitado lá. É mais simples de utilizar mas possui um grande problema: o sistema pode ficar instável a qualquer momento.
  • O sistema "BRANCH o tempo todo"
    Cada usuário possui seu BRANCH privado, e alguém (possivelmetne o gerente) revisa todos os commits e junta tudo na pasta TRUNK. Não é muito recomendado pois pode gerar muitos confiltos
  • O sistema "BRANCH quando precisar"
    Essa é, na minha opinião, a melhor opção. Apenas quando uma versão está (teoricamente) pronta, é criado um BRANCH. É importantíssimo respeitar dois pontos:
    1. Todos os commits devem ser pequenos, com apenas uma correção de bug, ou apenas uma nova funcionalidade. Nada de juntar uma série de atividades em um commit.
    2. O BRANCH tem que rodar sempre, e sem erros.

     

Saiba mais: http://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html


Permissões de acesso e leitura para diretórios específicos a cada usuário e grupo no Subversion (SVN)

O Subversion é um sistema de controle de versão. Se você não sabe o que é isso, veja esses dois artigos no Wikipedia:

Este artigo é indicado para quem já conhece a configuração de permissões de usuários e grupos a repositórios no Subversion. A localização do arquivo de configuração pode variar entre os Sistemas Operacionais. Para o exemplo abaixo, utilizei o CentOS, e o arquivo é o seguinte: /etc/svn-authz-file, apesar disso, os comandos para permissão são os mesmos em qualquer Sistema Operacional. A intenção aqui é mostrar como dar ou negar permissão a uma pasta específica. Vou demonstrar com dois exemplos:

1. Nesse primeiro exemplo, pretendo dar permissão de leitura para os usuários do grupo "estagiários" e leitura e escrita para os usuários do grupo "desenvolvedores" ao repositório completo. Além disso, quero dar aos estagiários permissão de leitura e escrita no diretório "css". Assim:

 

[groups]
# usuarios que pertencem ao grupo desenvolvedores
desenvolvedores = tiago, andre
# usuarios que pertencem ao grupo estagiarios
estagiarios = luis, pedro

[nome_do_repositorio:/]
# permissao de leitura e escrita no repositorio completo para o grupo "desenvolvedores"
@desenvolvedores = rw
# permissao de leitura no repositorio completo para o grupo "estagiarios"
@estagiarios = r

[nome_do_repositorio:/css]
# permissao de leitura e escrita no diretorio "css" para o grupo "estagiarios"
@estagiarios = rw

2. No segundo exemplo, pretendo dar permissão de leitura e escrita para os usuários do grupo "estagiários" e para os usuários do grupo "desenvolvedores" ao repositório completo, mas quero negar aos estagiários permissão de leitura e escrita no diretório "js". Assim:

[groups]
# usuarios que pertencem ao grupo desenvolvedores
desenvolvedores = tiago, andre
# usuarios que pertencem ao grupo estagiarios
estagiarios = luis, pedro

[nome_do_repositorio:/]
# permissao de leitura e escrita no repositorio completo para o grupo "desenvolvedores"
@desenvolvedores = rw
# permissao de leitura e escrita no repositorio completo para o grupo "estagiarios"
@estagiarios = rw

[nome_do_repositorio:/js]
# negadas todas as permissões do diretório "js" para o grupo estagiários
@estagiarios =

 

3. Ao invés de definir permissões para um grupo, você pode (apesar de não ser uma boa prática) definir para um usuário. Para isso basta colocar o nome do usuário. Assim:

[groups]
# usuarios que pertencem ao grupo desenvolvedores
desenvolvedores = tiago, andre
# usuarios que pertencem ao grupo estagiarios
estagiarios = luis, pedro

[nome_do_repositorio:/]
# permissao de leitura e escrita no repositorio completo para o grupo "desenvolvedores"
@desenvolvedores = rw
# permissao de leitura e escrita no repositorio completo para o grupo "estagiarios"
@estagiarios = rw

[nome_do_repositorio:/js]
# negadas todas as permissões do diretório "js" para o usuário luis, do grupo estagiários
luis =

Dúvidas? Utilize os comentários!

Fonte: SVN Book


Hospedagem de Repositórios do Subversion – SVN – e Git Grátis

Eu estava procurando um lugar confiável e grátis para hospedar repositórios SVN e Git, e finalmente achei. O Assembla é um dos maiores provedores desse serviço, mas nos últimos meses parou de oferecer os planos gratuitos para novos usuários. Agora eles voltaram atrás.

São 2GB de espaço, repositórios ilimitados, usuários ilimitados para projetos proprietários ou open-source.

Eles também dispõem de planos pagos, que oferecem outros recursos. Mas se você quer só os repositórios SVN ou Git, é grátis! 🙂

Veja aqui:
http://www.assembla.com/catalog/49-free-private-subversion-repository–package

A aqui veja a comparação entre os planos pagos:
http://www.assembla.com/features/compare?locale=en


Instalando e Utilizando o Subversion com VisualSVN Server 2.1.4 e RapidSVN 0.12 no Windows

O Subversion – ou SVN – é um Sistema de Controle de versão. Se você não sabe o que é isso, pode acessar o artigo do Wikipedia sobre o assunto e obter mais detalhes. Nesse artigo vou explicar o passo-a-passo como fazer uma instalação básica do VisualSVN Server, que é o servidor, e o RapidSVN, que é o cliente. Foram utilizadas como base as versões 2.1.4 do VisualSVN Server e 0.12 do RapidSVN. Em versões futuras é possível que hajam algumas diferenças.

O VisualSVN Server nada mais é que uma ferramenta visual para instalação e manutenção simplificada do Subversion para Windows, juntamente com o servidor web Apache, utilizado pelo Subversion, que só possuem uma aplicações de linha de comando (para ser usada pelo DOS). O RapidSVN é o programa utilizado para utilizar o servidor.

O RapidSVN foi o programa escolhido para esse artigo porque tem versões disponíveis para vários sistemas operacionais, incluindo Windows, Linux e Mac OS X.

Se o sistema for utilizado por várias máquinas, é interessante que o VisualSVN esteja em uma máquina separada, e nas outras máquinas será instalado só o RapidSVN. No nosso caso coloquei os dois programas no mesmo computador.

Antes de mais nada, baixe o VisualSVN Server no site aqui. A partir de agora vou mostrar um passo-a-passo de como instalar o VisualSVN Server e o RapidSVN.

Caso você não conheça o Subversion, pode entender um pouco como ele funciona aqui: http://marcelosabadini.com.br/blog/2009/08/05/subversionsvn-introducao-basica/.

Passo 1. Depois de feito o download do VisualSVN Server, vai aparecer essa tela. Clique em Executar.

Passo 2. A instalação do VisualSVN começou. Clique em Next.

Passo 3. Marque a caixinha (de preferência leia o contrato antes) e clique em Next.

Passo 4. A primeira opção pergunta se você quer instalar o servidor e o programa pra gerenciamento. A segunda se quer instalar só o programa de gerenciamento. No nosso marcamos a primeira opção. Clique em Next.

Passo 5. Local é onde o servidor será instalado. Repositories é onde ficarão os arquivos de repositório. Clique em Next.

Passo 6. Depois dessa tela a instalação será feita. Clique em Install

Passo 7. Depois disso o servidor será iniciado. Clique em Finish.

Passo 8. Aqui você criará um novo repositório, que é onde ficarão os arquivos dos documentos ou programas que estiver fazendo controle de versão.

Passo 9. Digite o nome do repositório sem espaços, acentos ou caracteres especiais. Digite a senha, e depois repita ela. Clique em OK.

Passo 10. Agora você vai criar um novo usuário.

Passo 11. Digite o nome do usuário sem espaços, acentos ou caracteres especiais. Clique em OK.

Pronto! Seu servidor foi instalado e foram criados um usuário e um respositório. Agora vamos instalar o cliente (RapidSVN). Passo 12. Entre no site http://rapidsvn.tigris.org/ e baixe a última versão do RapidSVN.

Passo 13. Escolha o arquivo com final exe

Passo 14. Depois de baixar o arquivo, abra ele. Se essa tela aparecer, clique em Executar.

Passo 15. Escolha o idioma.

Passo 16. Clique em Avançar.

Passo 17. Marque a opção "eu aceito os termos do contrato". Clique em Avançar.

Passo 18. Clique em Avançar.

Passo 19. Clique em Avançar.

Passo 20. Clique em Avançar.

Passo 21. Clique em Avançar.

Passo 22. Clique em Avançar.

Passo 23. Clique em Instalar.

Passo 24. Clique em Concluir.

Passo 25. Abra o programa. Essa é a tela do RapidSVN.

Passo 26. Agora vamos adicionar o repositório que foi criado anteriormente. Clique com o botão direito do mouse em Favoritos, depois em Adicionar Repositório Existente.

Passo 27. Digite a url do repositório. Se ele está na mesma máquina, digite https://localhost/svn/nome_do_repositorio. Clique em OK.

Passo 28. Será feita uma pergunta em relação ao certificado SSL, já que o Subversion usa conexão HTTPS (segura). Clique em Permanentemente.

Passo 29. Digite o nome do usuário e a senha que você criou anteriormente. Clique em OK.

Passo 30. Vamos fazer o checkout para depois adicionar os arquivos ao repositório. Clique com o botão direito do mouse em Favoritos, e depois em Checkout de Nova Cópia de Trabalho.

Passo 31. URL é o endereço do repositório. Pasta de destino é o local onde estão os arquivos no seu computador. Digite essas informações. Clique em OK.

Passo 32. Depois de feito o checkout, temos que adicionar os arquivos ao repositório. Selecione todos ele, clique o com o botão direito do mouse, e depois clique em "Adicionar Recursivo".

Passo 33. Agora que os arquivos foram criados no servidor, precisamos enviá-los através de um Commit. Selecione todos ele, clique o com o botão direito do mouse, e depois clique em "Commit"

Passo 34. Quando você dá um commit, é interessante dizer o que foi mudado. Nesse caso você pode colocar "Primeira versão", por exemplo. Depois clique em OK.

Agora sim. Seu servidor e seu cliente SVN estão instalados. É só começar a trabalhar!


Cliente gráfico para Subversion – SVN – no Linux, Windows e Mac OS X

RapidSVN: Cliente gráfico para Subversion – SVN – no Linux, Windows e Mac OS X

O Subversion – ou simplesmente SVN – é um dos softwares de controle de versão mais populares do mundo. Trata-se de um controle centralizado, diferente dos controles de versão distribuídos como o Git ou Mercurial. Uma das principais funções do controle de versão é possibilitar que vários usuários trabalhem em um mesmo projeto sem que um sobrescreva o trabalho do outro, além da possibilidade de recuperar versões antigas de um mesmo arquivo. Os controles de versão também podem ser usados em outras funções diferentes de programação, como redação de textos e edição de imagens.

“O controle de versão centralizado segue a topologia em estrela, havendo apenas um único repositório central mas várias cópias de trabalho, uma para cada desenvolvedor. A comunicação entre uma área de trabalho e outra passa obrigatoriamente pelo repositório central”. No controle de versão distribuído “são vários repositórios autônomos e independentes, um para cada desenvolvedor. Cada repositório possui uma área de trabalho acoplada e as operações commit e update acontecem localmente entre os dois”. Entenda mais sobre os tipos de controle de versão aqui.

O próprio Subversion dispõe de um cliente em modo texto, ou seja, o programa que o usuário utiliza para mandar e recuperar seus arquivos do servidor, que é uma máquina separada onde todos os repositórios é armazenado. É nos repositórios que se encontram todas as versões dos arquivos de um ou mais projetos.

No dia-a-dia de quem usa um sistema como esses, é necessário enviar e recuperar arquivos do servidor várias vezes. Isso pode ser feito usando o cliente modo texto do SVN, mas a maioria dos usuários preferem usar uma interface mais amigável: um cliente gráfico para controle de versão.

Existem vários produtos disponíveis. Boa parte deles – possivelmente a maioria – são grátis e livres. Um dos mais usados no Windows é o Tortoise, que permite a integração com o Windows Explorer. Apesar de ser ótimo, nem sempre o Tortoise supre todas as necessidades, além de não existir versão para Linux.

Como alternativa ao Tortoise, apresendo o RapidSVN. Ele é extremamente leve e rápido por ser escrito em C++ (usando a framework wxWidgets). Além disso ele é grátis e livre, licenciado sob a licença GPLv3 (GNU GENERAL PUBLIC LICENSE v3).

As principais vantagens de se usar o RapidSVN são:

  1. Simplicidade – dispõe de uma interface muito simples para usar os recursos do SVN;
  2. Eficiente – simples para iniciantes, mas flexível para aumentar a produtividade para usuários experientes do Subversion;
  3. Portável – roda em Linux, Windows, Mac OS/X, Solaris, entre outros.
  4. Rápido – totalmente escrito em C++

A versão para Windows está disponível para download aqui.

Para Linux, o software está disponível nas maiores distribuições. Nas distribuições baseadas no Red Hat, como Fedora e CentOS. Você pode usar o comando:

sudo yum install rapidsvn

No Ubuntu e Debian, o comando pra instalar é esse:

sudo apt-get install rapidsvn

Screenshot do RapidSVN 0.12 para Windows


  • Publicidade

  • Redes Sociais

    Facebook  Twitter
  • Estatísticas

    Page Views (desde março de 2010):

    Estatísticas detalhadas
  • Novidades por e-mail!

    Digite seu e-mail:


    Fique tranquilo. Seu e-mail não será usado para outros fins, e você poderá se descadastrar quando quizer.

    Eu!

    Tiago Passos
    Todo o conteúdo desse site esta licenciado sob a licença Creative Commons 3.0 (CC BY 3.0). Você pode copiar e modificar o conteúdo desde que cite o autor.
    iDream theme by Templates Next | Powered by WordPress