Você está na página 1de 63

MAC 5856 - Software Livre

Professor: Fabio Kon

REPOSITRIOS
1

LVARO HENRY MAMANI ALIAGA POLIANA MAGALHES REIS

RESUMO DA APRESENTAO

Definies Vantagens Atividades Comuns Integrao com outros Softwares Como funciona ? Repositrios Centralizados Repositrios Distribudos

RESUMO DA APRESENTAO (CONT.)

Sistemas de Controle de Verso Centralizados RCS Revision Control System CVS Concurrent Version System SVN Subversion VSS Microsoft Visual SourceSafe Rational ClearCase Distribuidos GIT BAZZAR Mercurial GNU Arch Monotone

Darcs

DEFINIES
Um repositrio pode ser um sistema de arquivos local ou um servidor remoto, e so extensamente usados em Sistemas de Controle de Verso.

Um sistema de controle de verso, VCS (Version Control System) ou ainda SCM (Source Code Management) por sua vez, providencia rvore de verso para gerenciar verses diferentes de arquivos.

EXEMPLO : Vrias ferramentas de controle de verso usam arquitetura de cliente/servidor e os clientes podem pegar qualquer informaes sobre qualquer arquivo acessando o repositrio.
4
4

PRINCIPAIS VANTAGENS

Controle do histrico Trabalho em equipe Marcao e resgate de verses estveis Ramificao de projeto

INTEGRAO COM OUTROS SOFTWARES

Os sistemas de controle de verses mais flexveis permitem que seja possvel integr-los a outros softwares. A integrao mais comum em ambientes de desenvolvimento atravs de plugins . Alguns ambientes que suportam a integrao de alguns sistemas so:

IntelliJ IDEA, Eclipse, NetBeans e Visual Studio.

O TortoiseSVN, o TortoiseCVS e o TortoiseHg, clientes do SVN, do CVS e do Mercurial, respectivamente, funcionam sobre o Windows Explorer.

COMO FUNCIONA O CONTROLE DE VERSO?

REPOSITRIOS CENTRALIZADOS

REPOSITRIOS CENTRALIZADOS
VANTAGENS Mantm as informaes referentes aos arquivos em um repositrio nico acessvel a todos os desenvolvedores de um projeto.

Simplicidade Facilidade de controlar o acesso

DESVANTAGENS

So extremamente dependentes do repositrio que contm os dados Necessidade de uma boa estrutura de backup
9

REPOSITRIOS DISTRIBUDOS

Design muito mais complexo Uma conexo permanente com o servidor no requisito fundamental para 10 o funcionamento do sistema

REPOSITRIOS CENTRALIZADOS

RCS Revision Control System CVS Concurrent Version System SVN Subversion VSS Microsoft Visual SourceSafe Rational ClearCase

12

REPOSITRIOS CENTRALIZADOS

RCS - REVISION CONTROL SYSTEM

RCS foi inicialmente desenvolvido em 1980 por Walter F. Tichy [1985 ] Consiste em um conjunto de comandos UNIX Modelo checkout/checkin [Feiler 1991] Os arquivos so armazenados no repositrio na forma de rvore. Armazena somente os arquivos correntes no repositrio, que conhece somente as diferenas entre as revises armazenadas

13

REPOSITRIOS

RCS DEFEITOS

O mtodo de bloqueio (locking) dos arquivos impede o desenvolvimento paralelo . OBS: A programao paralela pode ser simulada com a utilizao de branches, seguidos da instruo merge. O sistema no permite que exista uma hierarquia de diretrios dentro de um repositrio. ( O RCS gerencia os artefatos apenas dentro de um determinado diretrio.) Estas limitaes incentivaram o desenvolvimento do chamado CVS (Concurrent Versions System).
13

REPOSITRIOS CENTRALIZADOS

CVS - CONCURRENT VERSION SYSTEM


Primeira verso lanada em 1984 por Dick Grune O cdigo que evoluiu para a verso atual do CVS foi iniciada por Brian Berliner em abril de 1989. Usa o formato para armazenamento de arquivo do RCS Pode ser usado tanto localmente como remotamente Licena GPL Suporte ao rastreamento de mudanas linha-a-linha (annotate),

14

REPOSITRIOS CENTRALIZADOS

CVS - CONCURRENT VERSION SYSTEM

Suporte ao desenvolvimento de um software originalmente desenvolvido por outra pessoa ou empresa . (Import) Criao de mdulos dentro de um repositrio. Permite total personalizao sobre o armazenamento do registro de mudanas Desenvolvimento concorrente Paradigma copy-modifymerge" [Berliner 1990]

Conceito de bloqueio fraco


16

Um levantamento bastante completo das funcionalidades do CVS pode ser encontrado em [Fogel 1999] e [Cederqvist 1993].

REPOSITRIOS CENTRALIZADOS

CVS - ENVIO E RESGATE DE VERSES

17

REPOSITRIOS CENTRALIZADOS

CVS DEFEITOS

Os commits no so atmicos, Histrico de verses no muito bom Requer maior administrao que o RCS Curva de aprendizagem ngreme para os novatos

17

REPOSITRIOS CENTRALIZADOS

SVN - SUBVERSION

O projeto Subversion comeou em 2000, financiado pela empresas CollabNet e Red Hat Em agosto de 2001 o sistema se tornou auto gerencivel (Os desenvolvedores do Subversion pararam de usar o CVS para gerir seu prprio cdigo-fonte, e comearam a usar o prprio Subversion no lugar.) Primeira verso lanada em 2004 Atualmente encontra-se na verso 1.6 Licena CollabNet/Tigris.org Os custos so proporcionais ao tamanho das mudanas e no ao tamanho dos dados Enquanto o CVS usa versionamento por arquivo, o SVN usa versionamento por mdulo.
19

REPOSITRIOS CENTRALIZADOS

SVN - SUBVERSION

O Subversion conta com vrias caractersticas inexistentes no seu irmo mais velho, o CVS, e entre elas podemos citar:

Versionamento de diretrios Histrico de verses bom Commits atmicos Escolha das camadas de rede (associa-se ao servidor Apache HTTP pelo protocolo WebDAV/DeltaV)

http://svnbook.red-bean.com/en/1.4/svn-book.html Segundo informaes encontradas na internet, todo o repositrio de cdigos-fonte da Conectiva (criadora do Conectiva Linux), armazenado em um repositrio Subversion consistindo em mais de 20 Gb de dados.
20

REPOSITRIOS CENTRALIZADOS

SVN - ENVIO E RESGATE DE VERSES

20

REPOSITRIOS CENTRALIZADOS

VSS- VISUAL SOURCE SAFE

um sistema de controle de verses e administrao de cdigo fonte vendido pela Microsoft junto com o pacote Microsoft Visual Studio. A grande vantagem a integrao com outras ferramentas Microsoft como o Visual Studio .NET. Boa interface com usurio Podemos definir o VSS em 3 funes bsicas de um SCV:

Centralizao os arquivos Gernciamento de acesso Histrico das modificaes


22

REPOSITRIOS CENTRALIZADOS

VSS - DESVANTAGENS

Ruim gerenciamento em redes Dificiculdade de gerenciar mdulos externos Lentido na busca por verses anteriores no seu repositrio No existe verso nativa para Linux ou Unix.

OBS : Hoje em dia o VSS est em desuso e sua utilizao no muito indicada, a Microsoft apostou em um novo produto, o Visual Studio 2005 Team System (VSTS). O VSTS no herdeu nada do VSS e foi construdo a partir do zero, tendo toda estrutura de gerenciamento refeita. Alm disso, trabalha sobre o banco de dados SQL Server 2005 e tem acesso remoto nativo atravs da web.

23

REPOSITRIOS CENTRALIZADOS

CLEAR CASE

Permite criar dois tipos de projetos: Base e UCM. Projeto proprietrio da Rational (IBM) Um projeto do ClearCase Base possui recursos similares ao SVN e CVS. (check-in, check-out, branch, labels, etc) No ClearCase UCM

Stream: Seria como um branch integrado a atividades. Geralmente so separadas por desenvolvedores e existe uma stream de integrao. Delivery: a entrega do cdigo de uma atividade para a stream de integrao; Rebase: Representa a atualizao da sua stream de desenvolvimento a partir de uma baseline;
24

REPOSITRIOS CENTRALIZADOS CLEAR CASE

BRANCH X STREAM

Um branch uma ramificao no controlador de verso do fonte do nosso projeto. Essa ramificao muito utilizada para realizar manutenes evolutivas e correes no software.

25

REPOSITRIOS CENTRALIZADOS CLEAR CASE

BRANCH X STREAM

Branch pode evitar que o cdigo parcial de uma manuteno evolutiva v por engano para homologao/ produo junto com a correo de um bug simples aberto e corrigido nas ltimas horas. Se uma pessoa fizer algo errado e realizar o check-in, essa pessoa pode impactar o trabalho de outras pessoas, mesmo em projetos com testes unitrios Para evitar isso o ClearCase UCM existe a opo de utilizar o que chamado de desenvolvimento em paralelo que um pouco diferente do conceito do CVS / SVN ou mesmo ClearCase Base.
25 25

REPOSITRIOS CENTRALIZADOS

COMPARATIVO GERAL
SCV Desenvolvi mento Concorrent e Comits Atmicos Versionamento Histrico de verses RCS No permite CVS Bom SVN Bom VSS No permite Clear Case Muito Bom

No Versionamento de arquivos Regular

No Versionamento de arquivos Regular

Sim Versiona mento de mdulos Muito bom

No Versiona mento de arquivos bom

Sim Versiona mento de arquivos Muito bom

26

REPOSITRIOS CENTRALIZADOS

COMPARATIVO GERAL
SCV Lanado em Desenvolvi do por Licena RCS 1980 Walter F. Tichy GPL CVS 1986 Dick Grune GPL SVN 2004 CollabNet e Red Hat CollabNet/ Tigris.org VSS 1995 One Tree Software MSDN Universal License Sim No Clear Case 1992 Atria Software Rational Licence No Sim
27

Mtodo de Sim Bloqueio Bloqueio Fraco No

No (Pode No ser simulado) Sim Sim

REPOSITRIOS CENTRALIZADOS

CONCLUSES

Entre os mais comuns encontram-se as solues livres: CVS e SVN; e as comerciais: SourceSafe e ClearCase. Optar por uma soluo comercial geralmente est relacionada garantia, pois as solues livres no se responsabilizam por erros no software e perdas de informaes, apesar das solues livres poderem ter melhor desempenho e segurana que as comerciais

28

COMPARAO: CENTRALIZADO E DISTRIBUDO

http://www.infoq.com/articles/dvcs-guide

29

29

REPOSITRIOS DISTRIBUDOS

Cada projeto um repositrio completo, com histrico total. Independente de acesso rede ou servidor central. Commits podem ser feitos offline. Commits podem ser transferidos (push e pull) de um repositrio para outro facilmente.

30

RECOMENDVEL

31

GIT

32

REPOSITRIOS DISTRIBUDOS

GIT

Criador: Linus Torvalds(2005). Responsvel: Junio C Hamano Licena: GPL v2 ltima verso: v1.6.5.2 Escrito em: C, Bourne Shell, Perl

33

REPOSITRIOS DISTRIBUDOS

GIT: CARACTERSTICAS

Desenvolvido para manter o Kernel do Linux. Rapidez, eficincia e uso em grandes projetos. http://git.or.cz Commits offline. Commits parciais. Bisect Git SVN: Permite usar Git em repositrios SVN

34

REPOSITRIOS DISTRIBUDOS

GIT: GUIS

gitk GitX(Mac OS X) TortoiseGit (Windows) Git Extensions (Windows) Qgit (Qt)

35

REPOSITRIOS DISTRIBUDOS

GIT: HOSPEDAGEM

Hospedagem pblica

repo.or.cz - http://repo.or.cz Gitorious - http://gitorious.org/ codebase - http://www.codebasehq.com/ Unfuddle - http://unfuddle.com/ GitHub - http://github.com/ CodaSet - http://codaset.com/

Hospedagem privada

Hospedagem Privada e Pblica


36

REPOSITRIOS DISTRIBUDOS

GIT

Projetos de software que usam Git:

Kernel do Linux, Servidor X.org, Qt(toolkit), Android do Google Ruby on Rails. gcc

37

BAZAAR

38

REPOSITRIOS DISTRIBUDOS

BAZAAR

Criador: Martin Pool Desenvolvido por: Canonical Ltd. and community Licena: GPL ltima verso: October 14, 2009: Bazaar 2.0.1 Escrito em: Python, Pyrex, C

39

REPOSITRIOS DISTRIBUDOS

BAZAAR: CARACTERISTICAS

Comunidade grande e ativa(Canonical/Ubuntu) http://bazaar-vsc.org/ O controle do repositrio fica na raiz do projeto, em um diretrio chamado .bzr Permite trabalhar nos repositrios SVN, Git, Mercurial. Workflows Focado na facilidade de uso. Suporta plugins. Criticado por mau desempenho
40

REPOSITRIOS DISTRIBUDOS

BAZAAR: GUIS

GUIs para bazaar esto disponveis para:

Windows Linux OS X

41

REPOSITRIOS DISTRIBUDOS

BAZAAR: HOSPEDAGEM

Launchpad - https://launchpad.net/ SourceForge - http://sf.net/ GNU Savannah - http://savannah.gnu.org/

42

REPOSITRIOS DISTRIBUDOS

BAZAAR

Projetos de software que usam Bazaar:

43

MERCURIAL

44

REPOSITRIOS DISTRIBUDOS

MERCURIAL

Responsvel: Matt Mackall Licena: GPL v2 ltima verso: 1.3.1 / 2009-07-23 Escrito em: Python e C.

45

REPOSITRIOS DISTRIBUDOS

MERCURIAL: CARACTERSTICAS

Funciona basicamente linha de comando, sempre comea com hg. http://mercurial.selenic.com/ Permitir fazer o clone via http Permitir fazer o pull (subir as alteraes) para o servidor tambm via http
46

REPOSITRIOS DISTRIBUDOS

MERCURIAL: GUI

Hgk (tcl/tk) GUIs para Mercurial esto disponveis para:

Windows Linux OS X

Netbeans, desde a verso 6 TortoiseHg


47

REPOSITRIOS DISTRIBUDOS

MERCURIAL: HOSPEDAGEM

FreeHg - http://freehg.org/ SourceForce - http://sourceforge.net/ Google Code- http://code.google.com/projecthosting/ GNU Savannah - http://savannah.gnu.org/ Bitbucket - http://www.bitbucket.org/

48

REPOSITRIOS DISTRIBUDOS

MERCURIAL

Projetos de software que usam Mercurial:

Mozilla Symbian OS GNU Octave Todos os projetos da Sun usam Mercurial, exceto MySQL.

49

LAUNCHPAD

50

LAUNCHPAD

uma aplicao web. Software livre. Criador: Canonical Ltd. Desenvolvido por: Canonical Ltd. and community Licena: GNU Affero General Public License ltima verso: Launchpad 3.0 23 Sep 2009 Escrito em: Python

51

LAUNCHPAD

Usa Bazaar, como repositrio Outros grandes projetos usando Launchpad so:

MySQL (code hosting) Zope 3 (bug tracking) Inkscape (bug tracking) Bazaar GNOME Do Integrade
52

LAUNCHPAD

15,009 projetos 461,952 bugs 222,746 branches

53

REPOSITRIOS DISTRIBUDOS

GNU ARCH

Parte do projeto GNU. Licena: GNU GPL Autor original: Thomas Lord Desenvolvedor: Andy Tai Verso estvel: 1.3.5 / 2006-07-20. Criticado pela quantidade de comandos.

54

REPOSITRIOS DISTRIBUDOS

MONOTONE

Desenvolvedores: Nathaniel Smith, Graydon Hoare Escrito em: C++ Pode importar projetos CVS. Fcil de aprender. Menos popular do que Bazaar, Git e Mercurial.

55

REPOSITRIOS DISTRIBUDOS

DARCS

Desenvolvido por: David Roundy Escrito em: Inicialmente C++, depois Haskell Desenvolvido para substituir os tradicionais CVS e SVN

56

REPOSITRIOS DISTRIBUDOS

COMPARAO DOS REPOSITRIOS


Software Git Bazaar Mercurial GNU Arch Monotone Darcs Mantido por Junio Hamano Canonical Ltd. Matt Mackall Andy Tai Nathaniel Smith, Graydon Hoare David Roundy Estado Ativo Ativo Ativo Licena Plataforma GPLv2 GPL GPLv2 Linguage m C, Bourne Linux, Mac OS X Shell, Windows 70% Perl Linux, Mac OS X Python, Windows 100% Pyrex, C Linux, Mac OS X Python e Windows 50% C Linux, Windows, Mac OS X Linux, Windows, Mac OS X Linux, Windows, Mac OS X Shell scripts C++ Haskell
57 57

Mantido GPL Ativo Ativo GPL GPL

REPOSITRIOS DISTRIBUDOS

COMPARATIVO GERAL PARTE 1

58

REPOSITRIOS DISTRIBUDOS

COMPARATIVO GERAL PARTE 2

59

REPOSITRIOS DISTRIBUDOS

COMPARATIVO GERAL PARTE 3

60

DVIDAS ?

61

BIBLIOGRAFIA

MOLINARI, Leonardo. Gerncia de Configurao - Tcnicas e Prticas no Desenvolvimento do Software. Florianpolis: Visual Books, 2007. 85-7502-210-5 MIKKELSEN, Tim, PHERIGO, Suzanne. Parctical Software Configuration Management: The Latenight Developer's Handbook. Upper Saddle River, NJ, EUA: Prentice Hall PTR, 1997. 0-13-240854-6 Cristiano Caetano. CVS: Controle de Verses e Desenvolvimento Colaborativo de Software. ed. Novatec, 2004.
62

BIBLIOGRAFIA

GNU Arch Tutorial:

http://www.gnu.org/software/gnu-arch/tutorial/arch.html

Subversion Home Page: http://subversion.tigris.org/ Wikipedia (CVS): http://en.wikipedia.org/wiki/Cvs Wikipedia (RCS): http://en.wikipedia.org/wiki/Revision_Control_System Wikipedia (Version Control System): http://en.wikipedia.org/wiki/Version_control_system Configuration Management (SCM) Systems http://www.dwheeler.com/essays/scm.html
63