Mostrando postagens com marcador svn. Mostrar todas as postagens
Mostrando postagens com marcador svn. Mostrar todas as postagens

quinta-feira, 25 de dezembro de 2008

Hospedagem de projetos e repositorios SVN

unfuddle_logo

Para quem procura um host gratuito para gerenciamento e colaboração em projetos, a melhor alternativa atualmente, na minha opinião, é o Unfuddle.

assembla_logo Eu usava, até pouco tempo o Assembla. Mas, embora ele não seja mais gratuíto, o custo médio de US$2/mês por integrante (usuário) é bastante considerável para qualquer projeto.

Particularmente eu adotarei daqui para frente o Assembla para projetos comerciais/efetivos (com fins lucrativos) e o Unfuddle para projetos iniciais (fase piloto/concepção).

Em resumo, os recursos disponíveis em ambos, que eu considero primordiais apra qualquer projeto são:

  • Gerenciamento de Milestones: Que permite definir metas para os projetos. Geralmente uma versão final de um projeto. Eu costumo ter Milestones definidos como “versão 1.0”, “versão 1.1”, etc.
  • Gerenciamento de Tickets: Que geralmente contemplam o registro de trabalho (sugestões, soluções, bugs, etc.) que compõem um Milestone.
  • Wiki: Com a finalidade de documentar o projeto. Contemplam geralmente páginas que apresentam o projeto, documentam sua finalidade, acesso ao Download de binaries, sources finais, etc.
  • SVN/Subversion: Repositório de controle de versão dos arquivos que contemplam o projeto. Indispensável no trabalho em equipe.

O Unfuddle apresenta todas as características acima. No caso do Wiki, o nome do recurso está disponível como Notebook. Ainda no Unfuddle, além de Subversion, é possível adotar como sistema de controle de versão o Git.

O Assembla apresenta uma gama muito maior de ferramentas do que o Unfuddle.

Enfim, são 2 opções que certamente resolvem qualquer necessidade de desenvolvedores/equipes que não possuem infra estrutura própria para gerenciamento de projetos.

Na linha de produtos da Adobe, vale lembrar que o Dreamweaver CS4 possui integração com SVN, bem como o Eclipse que é a base do FlexBuilder com o plugin SubClipse.

Se você quer saber mais sobre SVN. Veja esse post publicado aqui no TeclandoAlto sobre o assunto.

quarta-feira, 14 de maio de 2008

Utilidades do Subversion SVN

subversion O Subversion, também conhecido simplesmente como SVN, é um recurso que se tornou indispensável no meu trabalho de consultoria e desenvolvimento, assim como na verdade é para qualquer profissional desta área.

O Subversion foi a proposta da Tigris em substituição ao CVS, implementando muitas diferenças que estão bem documentadas com o produto.

Aos que iniciam ou procuram mais informações a respeito, resolvi colocar aqui um pequeno texto relatando a utilidade prática de uso do Subversion:

Introdução:

Numa apresentação mais breve e superficial possível, o Subversion é um sistema de gerenciamento e controle de versão de artefatos dispostos em um repositório. Este repositório compreende uma estrutura gerenciada pelo sistema servidor da solução. Através de ferramentas clientes, o usuário irá interagir com essa estrutura.

O sistema servidor permite designar usuários, para fins de identificar o autor de modificações no repositório e atribuir aos mesmos níveis de acesso.

O workflow de uso do SVN geralmente é o seguinte:

  1. O repositório é criado
  2. Os usuários e seus devidos níveis de acesso são determinados
  3. Algum conteúdo inicial é colocado no repositório para ser gerenciado (initial commit)
  4. Os usuários fazem uma cópia local dos arquivos para fins de consumo ou colaboração no desenvolvimento (checkout)
  5. Os usuário com permissão para modificar o conteúdo efetivam suas alterações locais no repositório (commit). Esse passo pode envolver ainda diversas outras situações como verificar conflito entre o codigo enviado neste momento e alguma modificação realizada no repositório feita por outro usuário, entre o "checkout" e essa tentativa de "commit" das alterações locais.
  6. Os demais usuários verificam modificações no repositório (synchronization) e atualizam suas versões locais (update). Se o usuário modificou algum arquivo, as situações de conflito entre modificações do conteúdo no repositório e conteúdo local do passo anterior podem ocorrer e o usuário terá como resolver as mesmas com instrumentos simples.

Estabelecido o servidor, suas utilidades podem ser apresentadas em basicamente 2 perfis, conforme relato adiante.

Para o desenvolvedor de conteúdo:

É um sistema que permite controlar a versão dos artefatos que fazem parte do repositório (geralmente códigos-fonte). Ao mesmo tempo, permite, de maneira imperativa (forçada) ou passiva (facultativa) documentar as modificações em cada artefato. Essa documentação se dá no momento de enviar para o repositório (commit) um artefato que foi alterado.

Para o consumidor

Ter uma maneira "atômica" de atualizar e acompanhar as modificações no mesmo. "Atômico" refere-se ao fato de que o sistema é capaz de atualizar somente a parte alterada de um arquivo modificado na fonte. Por exemplo, imagine um arquivo de 8MB no repositório. No primeiro momento (checkout) vc baixa os 8MB para estar em sincronismo com o repositório. Nas atualizações / modificações (updates), você vai baixar somente os "bytes" que diferem a sua versão local do arquivo. Se você for uma das pessoas autorizadas a modificar a fonte (repositório) o mesmo acontece na hora de "enviar" as modificações (commits). Você não precisará fazer o upload de 8MB e sim, apenas dos "bytes" que alteraram a versão no repositório.

Links:

  • TortoiseSVN
    Client para interagir com um servidor/repositório SVN, que integra-se ao sistema operacional.
  • VisualSVN
    Ferramenta de administração (criação de repositorios/controle de usuários).
  • Subclipse
    Plugin de integração com Eclipse IDE. Como o FlexBuilder da Adobe baseia-se no Eclipse, o plugin também é funcional nele.