quinta-feira, 28 de janeiro de 2016

Ferramentas de Controle de Versão - Evolução

Vamos entender o que é uma ferramenta de controle de versão e alguns tipos de Controle de Versão criados ao longo do tempo.

Um sistema de controle de versão como o próprio nome diz é responsável por registrar mudanças feitas em um arquivo, ou em um conjunto de arquivos de forma que possam ser recuperadas versões específicas, quando necessário.
Ao contrário do que muitas pessoas pensam, a utilização desse tipo de sistema não se limita apenas a pessoas que trabalham na área de TI (Tecnologia da Informação), mas também nas mais variadas áreas. Um bom exemplo que podemos citar é o caso de um designer gráfico que pode armazenar versões de um projeto que estejam desenvolvendo e caso precisem, possam reverter arquivos para uma versão anterior, comparar mudanças feitas, ver quem foi o último a modificar o projeto, etc.

Sistemas de Controle de Versão Locais

Muitas pessoas para criarem "cópias de segurança" de seus arquivos, os salvam em outros diretórios, mas isso também é um grande risco já que falhas podem acontecer e arquivos serem sobrescritos sem querer. Para lidar com esse problema, alguns desenvolvedores criaram há muito tempo uma ferramenta de controle de versão;







Uma das ferramentas mais populares foi um sistema chamado rcs, que ainda é distribuído em muitos computadores até hoje. Até o popular Mac OS X inclui o comando rcs quando se instala o kit de ferramentas para desenvolvedores. Basicamente, essa ferramenta mantém conjuntos de patches (ou seja, as diferenças entre os arquivos) entre cada mudança em um formato especial; a partir daí qualquer arquivo em qualquer ponto na linha do tempo pode ser recriado ao juntar-se todos os patches.





Sistemas de Controle de Versão Centralizados
Outro grande problema que as pessoas encontram estava na necessidade de trabalhar em conjunto com outros desenvolvedores, que usam outros sistemas. Para lidar com isso, foram desenvolvidos Sistemas de Controle de Versão Centralizados (Centralized Version Control System ou CVCS). Esses sistemas, como por exemplo o CVS, Subversion e Perforce, possuem um único servidor central que contém todos os arquivos versionados e vários clientes que podem resgatar (check out) os arquivos do servidor. Por muitos anos, esse foi o modelo padrão para controle de versão.


Sistemas de Controle de Versão Distribuídos

É aí que surgem os Sistemas de Controle de Versão Distribuídos (Distributed Version Control System ou DVCS). Em um DVCS (tais como Git, Mercurial, Bazaar ou Darcs), os clientes não apenas fazem cópias das últimas versões dos arquivos: eles são cópias completas do repositório. Assim, se um servidor falha, qualquer um dos repositórios dos clientes pode ser copiado de volta para o servidor para restaurá-lo. Cada checkout (resgate) é na prática um backup completo de todos os dados.



quarta-feira, 27 de janeiro de 2016

Apache Subversion - Instalação

       Como visto em post anterior, o Apache Subversion trata-se de um sistema de código aberto para gerenciamento de versões, mantido atualmente pela Apache Software Fundation

Fonte:
http://findicons.com/files/icons/2166/oxygen/128/tux.png
    
Quanto a compatibilidade, o Subversion pode ser utilizado entre usuários colaboradores de diferentes sistemas operacionais, o site oficial do projeto oferece download a partir de código-fonte, ou ainda de diversos pacotes binários específicos para cada sistema operacional suportado.







       Existem pacotes para os seguintes sistemas: AIX (Sistema de gestão para escolas), Centos Linux, Debian, Fedora Project, Free-BSD Project, HP-UX, NetBSD, OpenBSD, Mac OSX, Red Hat Linux, Solaris, SUSE, Ubuntu, Windows.


há também instruções específicas para alguns sistemas, bem como FAQ para usuários, novatos ou experientes, com dúvidas corriqueiras.

A lista de pacotes binários para download está disponível em: https://subversion.apache.org/packages.html.

REFERÊNCIAS:

Apache Subversion. https://subversion.apache.org

Sistemas de Controle de Versão - Início

   Boa noite a todos.

   Dando continuidade ao que foi dito por nosso amigo Ytallo, nosso foco nesse blog será trazer um pouco de informação acerca dos Sistemas de Controle de Versão, de modo a tentar explicar como é o seu funcionamento interno, suas características principais e suas vantagens em relação a outras ferramentas, além de um passo a passo de como instalar e utilizar essas ferramentas no seu dia a dia.

    A seguir temos alguns dos sistemas que deverão ser citados nesse blog.

   Apache Subversion (SVN) - Sistema de código aberto desenvolvido inicialmente pela CollabNet. Possuiu um sucesso muito grande na década passada, como sucessor do CVS.


Fonte: cabelovivaolinux.files.wordpress.com/2011/02/subversion_logo.png
   Git - Sistema de controle de versão distribuído que possui código aberto, tendo como alvo pequenos e grandes projetos.
Fonte: https://git-for-windows.github.io/img/git_logo.png

   Sistema de Versionamento Concorrente (Concurrent Versions System - CVS)  - Possui código aberto, sendo a precursora do Subversion. Atualmente é mantida por uma equipe de voluntários.


   Visual Studio Team Service (TFS) - Sistema de controle de versão de código fechado desenvolvido pela Microsoft, inicialmente apenas para o Visual Studio, mas versões recentes trazem uma integração com outras ferramentas e linguagem de programação. 
Fonte: https://www.directionstraining.com/sites/default/files/course/logo/Directions-Training-Microsoft-Visual-Studio-2010.png

Referências:

https://www.visualstudio.com/products/visual-studio-team-services-vs
http://www.devmedia.com.br/conhecendo-o-team-foundation-service-tfs-na-nuvem/27848
http://www.nongnu.org/cvs/
https://pt.wikipedia.org/wiki/CVS
https://subversion.apache.org/
https://git-scm.com/


Sejam bem vindos!

Bom dia galera, a partir de hoje vocês poderão utilizar este blog para adquirir informações relacionadas aos Sistemas de Controle de Versão.
Este blog foi criado para a disciplina Gerência de Projetos, referente ao semestre 2015-2. No desenvolvimento deste projeto, seremos orientados pelo Professor Rogério Patrício Nascimento.

O grupo é composto por:
- Matheus Mendonça Menezes
- Maicon Matheus Santana
- Vanderson Sampaio
- Ytallo Augusto

Esperamos que gostem!