Subversion - Controle de versão de documentos

Este artigo apresenta um modelo de implementação em Linux para controle e versionamento de arquivos. Após explicar os conceitos envolvidos, é destacado o procedimento de instalação e alguns exemplos de uso.

[ Hits: 84.280 ]

Por: Daniel de Souza em 24/08/2007


Conceitos de compartilhamento de arquivos



Todo sistema de controle de versão tem que resolver o mesmo problema fundamental em ambientes onde documentos devem ser compartilhados entre várias pessoas: Como permitir que os usuários tenham acesso às informações garantindo que não se atrapalhem mutuamente, sem impedir o trabalho ou sobrescrever acidentalmente as alterações enviadas por outros. Qualquer tentativa de controle em compartilhamentos depara basicamente com os dois modelos a seguir:

A solução travar-modificar-destravar

Muitos sistemas de controle de versão usam o modelo travar-modificar-destravar (lock-modify-unlock, em inglês) destinado a evitar o problema de autores terem seus trabalhos sobrescritos por terceiros. Nesse modelo, os arquivos no repositório podem ser consultados por todos, porem cada arquivo podem ser editado por uma pessoa de cada vez. Essa ação de exclusividade é conseguida através de travas, onde as demais pessoas só poderão alterar o arquivo quando primeiramente este for liberado pela pessoa que estava usando.

A solução copiar-modificar-fundir

Nesse modelo cada usuário contata o repositório e cria uma cópia de trabalho (working copy, em inglês) pessoal - uma réplica local dos arquivos e diretórios do repositório. Os usuários trabalham então em paralelo, modificando suas cópias particulares. Finalmente, as cópias particulares são enviadas ao repositório central e fundidas em uma nova versão final. O sistema de controle de versão frequentemente auxilia na fusão, mas o ser humano é o responsável de fazê-la funcionar corretamente.

Quando utilizar um ou outro modelo

Para arquivos binários (imagens, documentos em formato proprietário, áudio e banco de dados) o modelo mais indicado é o travar-modificar-destravar.

O modelo copiar-modificar-fundir é indicado para arquivos em formato texto, como código fonte de programas e documentos com conteúdo aberto, como texto simples sem formação e arquivos XML e seus correlatos.

Apesar do primeiro modelo parecer um entrave quando disponibilizado em um ambiente colaborativo (uma pessoa deveria esperar para que a outra terminasse a alteração para poder trabalhar na última versão), através de um simples processo pode-se resolver facilmente essa questão. Devemos lembrar que o objetivo é o controle de versionamento e não conferência onde é disputado o mesmo espaço de trabalho com os demais.

Mesmo que o CVS e o Subversion, sendo os principais sistemas abertos para controle de versão, trabalhem principalmente no modelo copiar-modificar-fundir, ambos reconhecem a necessidade de se travar um arquivo ocasionalmente e também oferecem mecanismos para isso.

Página anterior     Próxima página

Páginas do artigo
   1. Resumo
   2. Conceitos de compartilhamento de arquivos
   3. Instalando o Subversion
   4. Conceitos, informações relevantes e preparação de repositório
   5. Exemplos de uso
   6. Conclusões
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Esquemas de particionamento e sistemas de arquivos

Entendendo as permissões de arquivos (chmod)

Raid 1 com mdadm

Convertendo Sistemas de Arquivos

Armazenamento de arquivos em Linux: um estudo de caso

  
Comentários
[1] Comentário enviado por wolneysp em 24/08/2007 - 09:44h

Excelente... eu estava precisando muito de uma solução alternativa do M$ Sharepoint que fosse em Linux é Claro!!!

Parabens pelo Artigo...

[2] Comentário enviado por arauto em 26/08/2007 - 11:21h

Parabéns pelo artigo, ficou muito bom. Atualmente utilizo o CVS e o seu artigo ajudou a conhecer um pouco do SUBVERSION.

[3] Comentário enviado por lnxrhel em 26/08/2007 - 17:24h

Bem esclarecedor o artigo. Já utilizo o SubVersion para o controle de versionamento de software na empresa, é uma ferramenta excelente tanto para o versionamento de software tanto quanto o controle de documentos diversos.

[4] Comentário enviado por jakson_kiko em 28/08/2007 - 17:41h

Parabens, muito bom seu artigo!!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts