curso de controle de versão
TRANSCRIPT
-
8/6/2019 curso de controle de verso
1/100
Sistema de Controle de Verso
Marcelo de Gomensoro [email protected]
UNIVATES
-
8/6/2019 curso de controle de verso
2/100
Sistema de Controle de Verso V SDSL
Sistema de Controle de Verso
Roteiro do minicurso
-
8/6/2019 curso de controle de verso
3/100
Sistema de Controle de Verso V SDSL
Roteiro do minicurso
Parte I: Importncia
Conceitos bsicos Ferramenta CVS:
Montando um repositrio local
Operaes avanadas Montando um repositrio remoto Limitaes
-
8/6/2019 curso de controle de verso
4/100
Sistema de Controle de Verso V SDSL
Roteiro do minicurso
Parte II: Ferramenta Subversion:
Montando um repositrio local Branching Montando um repositrio remoto
Outros sistemas Desenvolvimento cooperativo Mais fontes de informao
-
8/6/2019 curso de controle de verso
5/100
Sistema de Controle de Verso V SDSL
Sistema de Controle de Verso
Importncia
-
8/6/2019 curso de controle de verso
6/100
Sistema de Controle de Verso V SDSL
Motivao
Permitir que qualquer alterao feita em umconjunto de cdigos-fonte seja controlada edocumentada, criando um histrico demodificaes e tambm impondo um
mecanismo de controle de acesso
-
8/6/2019 curso de controle de verso
7/100
Sistema de Controle de Verso V SDSL
Importncia de controlar verses
Possibilitar compartilhamento de cdigo-fonte e desenvolvimento distribudo
Permitir controle de modificaes e trabalhoem paralelo Auxiliar na qualidade do cdigo e em sua
manuteno Atrair novos colaboradores para projetos
abertos e expor sua evoluo
-
8/6/2019 curso de controle de verso
8/100
Sistema de Controle de Verso V SDSL
Controle de verso em outras reas
Histrico de modificaes em documentosde texto (wikis)
Configuraes de um sistema computacional(snapshotsouprofiles): gerenciamento deconfiguraes de software (SCM)
Alterao de desenhos feitos em CAD Protocolos de comunicao Interfaces de programao (APIs)
-
8/6/2019 curso de controle de verso
9/100
Sistema de Controle de Verso V SDSL
Sistema de Controle de Verso
Conceitos bsicos
-
8/6/2019 curso de controle de verso
10/100
Sistema de Controle de Verso V SDSL
Conceitos bsicos
Verso:Genericamente, o nome atribudo a um estado ou
contedo de um objeto em uma cadeia demudanas
Especificamente, indica um marcador (checkpoint)na evoluo ou desenvolvimento de um sistemacomputacional
-
8/6/2019 curso de controle de verso
11/100
Sistema de Controle de Verso V SDSL
Conceitos bsicos
Verses so tradicionalmente usadas pelaEngenharia de Software para indicarmudanas em programas
Tipos de verses: Simples: 10, 2003 Compostas: 0.9, 1.0rc1, 1.2.0, 2.6.11.354
major.minor[.micro[.build]] Datas: 20050720 Cdigos: XP, MX, CS
-
8/6/2019 curso de controle de verso
12/100
Sistema de Controle de Verso V SDSL
Conceitos bsicos
Reviso:Numerao incremental que especfica a um
componente de um software, normalmente semrelao direta com a verso global do mesmo
Tambm chamado de nmero de reviso ou nvelde reviso
1.1 1.2 1.3
-
8/6/2019 curso de controle de verso
13/100
Sistema de Controle de Verso V SDSL
Conceitos bsicos
Sistema de controle de verso (SCV):Ferramenta automatizada para atribuio e
gerenciamento de revises de componentes deum software
Normalmente o controle feito individualmentepara cada arquivo de cdigo-fonte
Permite disciplinar o acesso para edio destescomponentes
-
8/6/2019 curso de controle de verso
14/100
Sistema de Controle de Verso V SDSL
Conceitos bsicos
Funcionalidades de um SCV: Monitorar e registrar todas as alteraes em um
ou mais arquivos Permitir que as alteraes possam ser
examinadas individualmente e revertidas casonecessrio
Possibilita que a imagem de um arquivo possa
ser obtida para qualquer instante de sua histria Permite que vrios programadores trabalhem
simultaneamente sobre os arquivos
-
8/6/2019 curso de controle de verso
15/100
Sistema de Controle de Verso V SDSL
Conceitos bsicos
Caractersticas de um SCV: Pode ser centralizado ou no, onde as alteraes
sempre passam por um servidor central Pode permitir somente armazenamento de
arquivos texto ou tambm de binrios Pode implementar mecanismo de lockingpara
evitar acessos simultneos ou mergingpara
possibilitar edio concorrente Pode dispor ou no de autenticao e controle de
acesso
-
8/6/2019 curso de controle de verso
16/100
Sistema de Controle de Verso V SDSL
Terminologia
Repositrio:Local onde so armazenados os arquivos mantidos
sob controle de verso
rea de trabalho:Cpia local dos arquivos de um repositrio, utilizada
para o desenvolvimento propriamente dito
Mdulo ou projeto:Conjunto independente de arquivos; normalmente
um repositrio constitudo de muitos mdulos
-
8/6/2019 curso de controle de verso
17/100
Sistema de Controle de Verso V SDSL
Operaes fundamentais
Check-out:Operao inicial de criar uma rea de trabalho a
partir de um mdulo do repositrioUpdate:
Operao que atualiza a cpia local com eventuaismudanas ocorridas no repositrio
Commit:Operao de efetuar mudanas em um repositrio,
tambm chamada de check-in
-
8/6/2019 curso de controle de verso
18/100
Sistema de Controle de Verso V SDSL
Sistema de Controle de Verso
Ferramenta CVS
-
8/6/2019 curso de controle de verso
19/100
Sistema de Controle de Verso V SDSL
Ferramenta CVS
Abreviao de Concurrent Versions System Iniciado em 1986, tomou sua forma atual a
partir de 1989 Herda caractersticas do programa RCS o sistema de controle de verso mais
usado no desenvolvimento de Software Livre Hoje usado nos maiores projetos de SL Verso atual: 1.11.20
-
8/6/2019 curso de controle de verso
20/100
Sistema de Controle de Verso V SDSL
Ferramenta CVS
Caractersticas: um sistema centralizado O repositrio pode ser local ou remoto O acesso ao repositrio nunca direto, mas feito
atravs de ferramentas do pacote CVS As revises sempre comeam em 1.1 Permite fazer tanto lockingquanto merging Permite atribuir rtulos (tags) Possibilita criar ramificaes (branches)
-
8/6/2019 curso de controle de verso
21/100
Sistema de Controle de Verso V SDSL
Ferramenta CVS
Principais vantagens: um sistema maduro e bem testado amplamente documentado o sistema em maior utilizao hoje, dispondo de
um grande nmero de ferramentas de apoio Est integrado nativamente com os principais
ambientes de desenvolvimento (IDEs) Permite execuo de check-outssem restries,
reduzindo a necessidade de locking, para isso seapoiando na capacidade de fazer merging
-
8/6/2019 curso de controle de verso
22/100
Sistema de Controle de Verso V SDSL
Usando o CVS
Foco inicial: uso das ferramentas de linha decomando programa cvs
A localizao do repositrio sempreindicada pela varivel $CVSROOT ou pelaopo -d
-
8/6/2019 curso de controle de verso
23/100
Sistema de Controle de Verso V SDSL
Estrutura de um repositrio
/usr/local/cvsroot/CVSROOT/gnu/
hello.c,vteste.txt,v
meta/Attic/help.php,v
-
8/6/2019 curso de controle de verso
24/100
Sistema de Controle de Verso V SDSL
Estrutura de uma rea de trabalho
/home/mgm/devel/gnu/
CVS/EntriesRepositoryRoot
hello.cteste.txt
-
8/6/2019 curso de controle de verso
25/100
Sistema de Controle de Verso V SDSL
Principais comandos
checkout: obter uma cpia de um mdulopara a rea de trabalho local
commit: enviar as alteraes da cpia localpara o repositrio update: atualizar a cpia local com eventuais
mudanas do repositrio add/remove: adicionar e remover arquivos
de um mdulo
-
8/6/2019 curso de controle de verso
26/100
Sistema de Controle de Verso V SDSL
Principais comandos
Ajuda do programa cvs: cvs --help: ajuda geral
cvs --help-commands: lista de comandos cvs --help-options: lista de opes cvs -H : opes do comando
especificado
-
8/6/2019 curso de controle de verso
27/100
Sistema de Controle de Verso V SDSL
Ferramenta CVS
Montando um repositrio local
-
8/6/2019 curso de controle de verso
28/100
Sistema de Controle de Verso V SDSL
Montando um repositrio local
Definir a localizao e criar um repositrio Criar e importar um mdulo
Fazer um checkout Efetuar alteraes nos fontes Fazer um commit
Atualizar rea de trabalho e ver alteraes Adicionar e remover arquivos
-
8/6/2019 curso de controle de verso
29/100
Sistema de Controle de Verso V SDSL
Definindo e inicializando
Defina a localizao do repositrio:$ export CVSROOT=~/cvs
Inicialize o repositrio:$ cvs init
Nota: este diretrio deve ter permisso deleitura e escrita por todos que tero acesso
ao CVS
-
8/6/2019 curso de controle de verso
30/100
Sistema de Controle de Verso V SDSL
Criando um mdulo simples
Crie um diretrio temporrio:$ mkdir ~/temp
Crie dentro dele um arquivo texto:$ printf "um\ndois\ntrs\n" > ~/temp/teste.txt
-
8/6/2019 curso de controle de verso
31/100
Sistema de Controle de Verso V SDSL
Importando arquivos
V at o diretrio que contm os arquivos aserem importados:$ cd ~/temp
Importe todos os arquivos e diretriospresentes no mdulo gnu:$ cvs import -m "Importao" gnu gnu start
A opo -m indica a mensagem a serregistrada para a operao de importao
A palavra start indica um release
-
8/6/2019 curso de controle de verso
32/100
Sistema de Controle de Verso V SDSL
Criando uma rea de trabalho
Crie um diretrio base para sua cpia local:$ mkdir ~/devel
Faa um checkoutdo mdulo gnu nestediretrio:$ cd ~/devel$ cvs checkout gnu
cvs checkout: Updating gnuU gnu/teste.txt
-
8/6/2019 curso de controle de verso
33/100
Sistema de Controle de Verso V SDSL
Editando o mdulo
Entre no diretrio gnu e edite o arquivoteste.txt, adicionando a palavra quatro:$ cd gnu$ lsCVS teste.txt$ vi teste.txt
-
8/6/2019 curso de controle de verso
34/100
Sistema de Controle de Verso V SDSL
Enviando as alteraes
Faa um commit, especificando umamensagem para ser includa no histrico:$ cvs commit -m "atualizao"cvs commit: Examining .Checking in teste.txt; /home/mgm/cvs/gnu/teste.txt,v
-
8/6/2019 curso de controle de verso
35/100
Sistema de Controle de Verso V SDSL
Obtendo atualizaes
Faa um update, na rea de trabalho:$ cvs updatecvs update: Updating .
Modifique novamente o arquivo teste.txt, agoraremovendo a palavra trs:$ vi teste.txt
$ cvs updatecvs update: Updating .M teste.txt
-
8/6/2019 curso de controle de verso
36/100
Sistema de Controle de Verso V SDSL
Verificando alteraes
Faa um diff, entre o repositrio e a rea local:$ cvs diff -u
O resultado deste comando a comparaolinha-a-linha entre os arquivos mais recentesdo mdulo e a sua rea de trabalho
A opo -u indica um tipo de diffbastante
legvel, sendo o mais usado em SoftwareLivre para a divulgao de patches, tambmchamado de diffunificado
-
8/6/2019 curso de controle de verso
37/100
Sistema de Controle de Verso V SDSL
Adicionando fontes
Crie dois novos arquivos, arq1 e arq2:$ cp teste.txt arq1; cp teste.txt arq2
Remova o arquivo teste.txt, para que sejamrevertidas as mudanas feitas antes:$ rm teste.txt
Faa um updatee analise sua sada:
$ cvs updateSolicite a incluso dos dois novos arquivos:
$ cvs add arq1 arq2
-
8/6/2019 curso de controle de verso
38/100
Sistema de Controle de Verso V SDSL
Adicionando fontes
Faa outro update:$ cvs update
Adicione definitivamente os arquivos aorepositrio com um commit, agora semespecificar uma mensagem:$ cvs commit
Ser aberto o editor de texto padro, solicitandoa mensagem a ser armazenada
-
8/6/2019 curso de controle de verso
39/100
Sistema de Controle de Verso V SDSL
Removendo fontes
Remova o arquivo arq2 e depois use ocomando removepara sinalizar a remoo:$ rm arq2
$ cvs remove arq2$ cvs update
Remova definitivamente o arquivo dorepositrio com o comando commit:$ cvs commit -m "Remoo"
-
8/6/2019 curso de controle de verso
40/100
Sistema de Controle de Verso V SDSL
Ferramenta CVS
Operaes avanadas
-
8/6/2019 curso de controle de verso
41/100
Sistema de Controle de Verso V SDSL
Operaes avanadas
Configurao Comportamento recursivo
Substituio de keywords Arquivos binrios Arquivos temporrios
Exibindo e definindo tags Obtendo e efetuando alteraes
-
8/6/2019 curso de controle de verso
42/100
Sistema de Controle de Verso V SDSL
Operaes avanadas
Outros comandos Alterao manual do repositrio
Branching
-
8/6/2019 curso de controle de verso
43/100
Sistema de Controle de Verso V SDSL
Configurao
As opes defaultpara os comandos do CVSso colocadas no arquivo ~/.cvsrc
Exemplo:cvs -z3diff -uupdate -d -P
Neste caso: usar compresso em nvel 3, usartipo -u para o diffe fazer criao e remooautomtica de diretrios quando do update
-
8/6/2019 curso de controle de verso
44/100
Sistema de Controle de Verso V SDSL
Comportamento recursivo
Por defaulttodos os comandos do CVSoperam recursivamente:$ cvs commit
Contudo estes tambm podem ser chamadospara um ou mais arquivos separadamente:$ cvs commit arq1
-
8/6/2019 curso de controle de verso
45/100
Sistema de Controle de Verso V SDSL
Substituio de keywords
O CVS capaz de manter atualizadasautomaticamente diversas informaessobre o fonte, quando feito um update
As seguintes keywordsso sempreexpandidas:
$Author$, $Date$, $Header$, $Id$, $Name$,
$Locker$, $Log$, $RCSfile$, $Revision$,$Source$, $State$$Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
-
8/6/2019 curso de controle de verso
46/100
Sistema de Controle de Verso V SDSL
Arquivos binrios
Devem ser adicionados com a opo -kb docomando add:$ cvs add -kb imagem.gif
Nos arquivos de configurao do repositrio(no diretrio CVSROOT) existe o arquivocvswrappers que pode definir que tipo dearquivos so binrios por default:*.gif -kb*.jpg -kb
-
8/6/2019 curso de controle de verso
47/100
Sistema de Controle de Verso V SDSL
Arquivos temporrios
Alguns tipos de arquivos temporrios soautomaticamente ignorados pelo CVS, nofazendo parte do repositrio:
CVS, core, *~, *.bak, *.old, *.o, *.a, ...Ainda possvel definir padres de nomes
para serem ignorados:
via varivel de ambiente $CVSIGNORE em arquivos .cvsignore, no homedo usurio
ou em cada diretrio do projeto
-
8/6/2019 curso de controle de verso
48/100
Sistema de Controle de Verso V SDSL
Exibindo e definindo tags
Exibir dados de um arquivo, indicando averso de trabalho, a verso do repositrio eas tagsassociadas:
$ cvs status -v teste.txtDefinir uma tagpara um arquivo:
$ cvs tag dia-16 teste.txt
Definir uma tagpara um mdulo inteiro(chamada de release):$ cvs rtag release-0-0 gnu
-
8/6/2019 curso de controle de verso
49/100
Sistema de Controle de Verso V SDSL
Obtendo e efetuando alteraes
Obtendo alteraes entre verses:$ cvs diff -r start$ cvs diff -r 1.1 -r 1.2
Obtendo alteraes entre releasesde umprojeto inteiro:$ cvs rdiff -r VER1 -r VER2 prog
Aplicando um patch:$ patch -p1 < changes.diff
-
8/6/2019 curso de controle de verso
50/100
Sistema de Controle de Verso V SDSL
Outros comandos
Alteraes linha-a-linha:$ cvs annotate teste.txt
Histrico de acessos ao repositrio:$ cvs history
Registro de alteraes de cada arquivo:$ cvs log teste.txt
-
8/6/2019 curso de controle de verso
51/100
Sistema de Controle de Verso V SDSL
Conflitos
Quando um updatetraz atualizaes dorepositrio para um trecho de cdigo que jfoi alterado, pode ocorrer um conflito
Esse conflito sinalizado com a letra C e deveser resolvido manualmente pelo usurioantes de um prximo commit:
$ cvs updatecvs update: Updating .C driver.c
-
8/6/2019 curso de controle de verso
52/100
Sistema de Controle de Verso V SDSL
Conflitos
Exemplo de cdigo alterado para sinalizar umconflito:
fprintf(stderr, "No code generated.\n");
> 1.6}
-
8/6/2019 curso de controle de verso
53/100
Sistema de Controle de Verso V SDSL
Alterao manual do repositrio
Em algumas situaes prefervel alterarmanualmente o repositrio, ao invs deutilizar os comandos adde remove:
para mover diretrios e preservar seucontedo inalterado
para mover arquivos e manter seu histrico
para remover arquivos e diretriosdefinitivamente do CVS, inclusive com seushistricos
-
8/6/2019 curso de controle de verso
54/100
Sistema de Controle de Verso V SDSL
Branching
O CVS implementa um mecanismo complexopara manter mltiplos releasesde ummesmo projeto:
1.0 1.1 1.2
1.1.1 1.1.2
-
8/6/2019 curso de controle de verso
55/100
Sistema de Controle de Verso V SDSL
Ferramenta CVS
Montando um repositrio remoto
-
8/6/2019 curso de controle de verso
56/100
Sistema de Controle de Verso V SDSL
Montando um repositrio remoto
O servidor CVS precisa rodar como umservio do inetd:
cvspserver stream tcp nowait root
/usr/bin/cvs cvs -f --allow-root=/home/cvs pserver
importante criar um usurio cvs prprio parao CVS, que seja dono do repositrio etambm o usurio sob o qual ir rodar oservidor
-
8/6/2019 curso de controle de verso
57/100
Sistema de Controle de Verso V SDSL
Montando um repositrio remoto
O arquivo de configurao passwd permitedefinir usurios com senhas para o acesso:job:kfeIWZpz58xOI:cvs
mgm:AAqo55sskNRpI:cvsO acesso deve ser feito via comando login:
export CVSROOT=:pserver:[email protected]:/cvscvs login
O resto da utilizao idntica a umrepositrio local
-
8/6/2019 curso de controle de verso
58/100
Sistema de Controle de Verso V SDSL
Ferramenta CVS
Limitaes do CVS
d C S
-
8/6/2019 curso de controle de verso
59/100
Sistema de Controle de Verso V SDSL
Limitaes do CVS
Alterar nome, copiar ou mover arquivosexige operaes especiais para preservar ohistrico
No h versionamento para diretrios Commitsno so operaes atmicas Arquivos binrios exigem cuidados
especiais; todas as revises so mantidasintegralmente
Li i d CVS
-
8/6/2019 curso de controle de verso
60/100
Sistema de Controle de Verso V SDSL
Limitaes do CVS
Numerao de revises complexa No h suporte para linkssimblicos Branching uma operao complicada e
demorada Diferenas so transmitidas somente entre o
servidor e o cliente O protocolo defaultdo CVS no seguro Servidor pserver depende do inetd
Si d C l d V
-
8/6/2019 curso de controle de verso
61/100
Sistema de Controle de Verso V SDSL
Sistema de Controle de Verso
Ferramenta Subversion
F t S b i
-
8/6/2019 curso de controle de verso
62/100
Sistema de Controle de Verso V SDSL
Ferramenta Subversion
Projeto livre mantido pela CollabNet Iniciado em 2000 Tenta aprimorar o CVS e remover suas
limitaes, contudo seguindo os mesmosprincpios bsicos
o provvel substituto do CVS em projetos
de Software Livre Verso atual: 1.2.1
F t S b i
-
8/6/2019 curso de controle de verso
63/100
Sistema de Controle de Verso V SDSL
Ferramenta Subversion
Caractersticas: um sistema centralizado O repositrio pode ser local ou remoto O acesso ao repositrio feito indiretamente Permite fazer tanto lockingquanto merging Permite atribuir rtulos (tags) Possibilita criar ramificaes (branches)
-
8/6/2019 curso de controle de verso
64/100
Ferramenta Subversion
-
8/6/2019 curso de controle de verso
65/100
Sistema de Controle de Verso V SDSL
Ferramenta Subversion
Principais vantagens: Permite alterar nome, copiar ou mover arquivos
preservando seu histrico
Faz versionamento para diretrios Commitsso operaes atmicas Arquivos binrios so tratados automaticamente e
apenas as diferenas so armazenadas
Suporta linkssimblicos Branching simples e eficiente Marcao de tags rpida
Ferramenta Subversion
-
8/6/2019 curso de controle de verso
66/100
Sistema de Controle de Verso V SDSL
Ferramenta Subversion
Principais vantagens: Muitas operaes so feitas apenas localmente Diferenas so transmitidas nos dois sentidos
entre cliente e servidor Utiliza protocolos seguros e pode ser roteado
atravs de SSH Permite acesso remoto atravs de WebDAV,
sendo integrado ao Apache Servidor defaultpode ser independente oudepender do inetd
Usando o Subversion
-
8/6/2019 curso de controle de verso
67/100
Sistema de Controle de Verso V SDSL
Usando o Subversion
Foco inicial: uso das ferramentas de linha decomando programa svn
Programa svnadmin: gerenciamento do
repositrio A localizao do repositrio sempre
indicada por uma URL:
Apache: http://...Servidor prprio: svn://...Repositrio local: file://...
Estrutura de uma rea de trabalho
-
8/6/2019 curso de controle de verso
68/100
Sistema de Controle de Verso V SDSL
Estrutura de uma rea de trabalho
/home/mgm/devel/gnu/
.svn/...hello.cteste.txt
-
8/6/2019 curso de controle de verso
69/100
Principais comandos
-
8/6/2019 curso de controle de verso
70/100
Sistema de Controle de Verso V SDSL
Principais comandos
import: importar para o repositrio umarvore de diretrios sem versionamento
info: exibir informaes sobre o repositrio
ou arquivo especificado diff: exibe alteraes entre um arquivo e
revises anteriores
status: exibe o estado atual de cada arquivo,sem alterar a rea de trabalho ou orepositrio
Principais comandos
-
8/6/2019 curso de controle de verso
71/100
Sistema de Controle de Verso V SDSL
Principais comandos
Ajuda do programa svn: svn --version: exibe a configurao atual e o
suporte a protocolos de acesso svn help: ajuda geral svn help : ajuda do comando
especificado
Ferramenta Subversion
-
8/6/2019 curso de controle de verso
72/100
Sistema de Controle de Verso V SDSL
Ferramenta Subversion
Montando um repositrio local
Montando um repositrio local
-
8/6/2019 curso de controle de verso
73/100
Sistema de Controle de Verso V SDSL
Montando um repositrio local
Criar um repositrio e importar um conjuntode diretrios
Fazer um checkout Efetuar alteraes nos fontes Fazer um commit Atualizar rea de trabalho e ver alteraes Adicionar e remover arquivos
-
8/6/2019 curso de controle de verso
74/100
Importando
-
8/6/2019 curso de controle de verso
75/100
Sistema de Controle de Verso V SDSL
Importando
Importe todos os arquivos e diretriospresentes no diretrio temporrio$ svn import ~/temp2 file:///$HOME/subversion -m
"Importao"A opo -m indica a mensagem a serregistrada para a operao de importao
Agora verifique a importao:$ svn list --verbose file:///$HOME/subversion
Criando uma rea de trabalho
-
8/6/2019 curso de controle de verso
76/100
Sistema de Controle de Verso V SDSL
Criando uma rea de trabalho
Crie um diretrio base para sua rea:$ mkdir ~/devel
Faa um checkoutdo diretrio projeto/trunk do
repositrio para esta rea:$ cd ~/devel$ svn checkout
file:///$HOME/subversion/projeto/trunk projeto
A projeto/teste.txtChecked out revision 1.
-
8/6/2019 curso de controle de verso
77/100
Enviando as alteraes
-
8/6/2019 curso de controle de verso
78/100
Sistema de Controle de Verso V SDSL
Faa um commit, especificando umamensagem para ser includa no histrico:$ svn commit -m "atualizao"
Sending teste.txtTransmitting file data .Committed revision 2.
Verifique novamente o estado do arquivo:
$ svn status
Verificando alteraes
-
8/6/2019 curso de controle de verso
79/100
Sistema de Controle de Verso V SDSL
Modifique novamente o arquivo teste.txt, agoraremovendo a palavra trs.
Faa um diff, entre o repositrio e a rea local:
$ svn diffCheque as informaes sobre o arquivo:
$ svn info teste.txtReverta o arquivo ao estado original no repositrio:
$ svn revert teste.txt$ svn status
Operao desconectada
-
8/6/2019 curso de controle de verso
80/100
Sistema de Controle de Verso V SDSL
p
O Subversion mantm uma cpia localescondida de cada arquivo tal como trazidoda ltima vez do repositrio
Isso permite que os comandos status, differevert possam ser executados sem que sejanecessria conexo com o repositrio
Manipulando arquivos
-
8/6/2019 curso de controle de verso
81/100
Sistema de Controle de Verso V SDSL
p q
A adio e a remoo de arquivos funciona deforma anloga ao CVS, utilizando oscomandos add e remove
Arquivos e diretrios tambm podem sercopiados, movidos e renomeados,preservando seu o histrico:$ svn copy teste.txt teste2.txt$ svn rename teste.txt teste1.txt$ svn status
Ferramenta Subversion
-
8/6/2019 curso de controle de verso
82/100
Sistema de Controle de Verso V SDSL
Branching
Branching
-
8/6/2019 curso de controle de verso
83/100
Sistema de Controle de Verso V SDSL
Branching a ramificao dodesenvolvimento
No Subversion feito como uma cpia
eficiente de arquivos e diretrios
Branching
-
8/6/2019 curso de controle de verso
84/100
Sistema de Controle de Verso V SDSL
O diretrio trunk a base
O diretrio
branchescontmas vriasramificaes
O diretrio tagscontm novosreleases
Branching
-
8/6/2019 curso de controle de verso
85/100
Sistema de Controle de Verso V SDSL
Exemplo de branching:$ svn copy http://svn.example.com/calc/trunk \
http://svn.example.com/calc/branches/my-calc
Migrando alteraes de trunk para my-calc:$ svn merge -r 343:344 \
http://svn.example.com/repos/calc/trunk Criando uma tagchamada release-1.0:
$ svn copy http://svn.example.com/calc/trunk \http://svn.example.com/calc/tags/release-1.0
Ferramenta Subversion
-
8/6/2019 curso de controle de verso
86/100
Sistema de Controle de Verso V SDSL
Montando um repositrio remoto
Montando um repositrio remoto
-
8/6/2019 curso de controle de verso
87/100
Sistema de Controle de Verso V SDSL
Um repositrio pode ser montado usando WebDAVcom o Apache ou com um servidor prprio
No caso de um servidor prprio, basta rodar oprograma svnserve no maquina remota com osparmetros adequados:
$ svnserve -d -r ~/subversionO acesso na mquina local ento ser atravs de uma
URL especfica:$ svn checkout svn:///projeto/trunk projeto
Sistema de Controle de Verso
-
8/6/2019 curso de controle de verso
88/100
Sistema de Controle de Verso V SDSL
Outros sistemas
Outros sistemas
-
8/6/2019 curso de controle de verso
89/100
Sistema de Controle de Verso V SDSL
Sistemas centralizados (livres): Vesta Superversion (Java)
Stellation (Eclipse) Meta-CVS jedivcs (Delphi) /BriefCase
Outros sistemas
-
8/6/2019 curso de controle de verso
90/100
Sistema de Controle de Verso V SDSL
Sistemas distribudos (livres): GNU Arch / Bazaar ArX
Monotone Cogito (Linux kernel) Mercurial Codeville
Darcs SVK (sobre o Subversion) Aegis
Outros sistemas
-
8/6/2019 curso de controle de verso
91/100
Sistema de Controle de Verso V SDSL
Sistemas comerciais: Razor AccuRev
BitKeeper IBM/Rational Software ClearCase Perforce SCCS (anos 70)
Borland Starteam Microsoft Visual SourceSafe TeamWare
Sistema de Controle de Verso
-
8/6/2019 curso de controle de verso
92/100
Sistema de Controle de Verso V SDSL
Desenvolvimento cooperativo
Desenvolvimento cooperativo
-
8/6/2019 curso de controle de verso
93/100
Sistema de Controle de Verso V SDSL
Poltica de commitdo projeto: Definir quem, quando e como Cada grupo de commitsdeve ser
documentado Uso de um ou mais ChangeLogs Notificao de alteraes por e-mail: lista
especfica para desenvolvedores Acesso de escrita restrito
Desenvolvimento cooperativo
-
8/6/2019 curso de controle de verso
94/100
Sistema de Controle de Verso V SDSL
ChangeLog:
Mon Jul 7 11:37:43 2003 Marcelo Malheiros
* www/document/put.php: added missing translation
Sun Jul 6 21:27:38 2003 Marcelo Malheiros
* schema.sql: added quotes to function declaration for
compatibility
* www/user/list.php: added missing database translation
* www/cron/all.php: force change to script directory
Desenvolvimento cooperativo
-
8/6/2019 curso de controle de verso
95/100
Sistema de Controle de Verso V SDSL
Como organizar um repositrio? criar um ou mais diretrios de alto nvel por projeto
Como organizar os fontes em um projeto? seguir a estrutura dada porGNU Autotools
-
8/6/2019 curso de controle de verso
96/100
Desenvolvimento cooperativo
-
8/6/2019 curso de controle de verso
97/100
Sistema de Controle de Verso V SDSL
Como obter um servidor para um projeto?http://www.codigolivre.org.br/http://incubadora.fapesp.br/
http://colaborar.softwarelivre.gov.br/
http://www.sourceforge.net/http://savannah.gnu.org/
http://www.berlios.de/http://www.tigris.org/http://dev.java.net/
Sistema de Controle de Verso
-
8/6/2019 curso de controle de verso
98/100
Sistema de Controle de Verso V SDSL
Mais fontes de informao
Mais fontes de informao
-
8/6/2019 curso de controle de verso
99/100
Sistema de Controle de Verso V SDSL
http://www.cvshome.org/http://focalinux.cipsga.org.br/guia/avancado/ch-s-cvs.htmhttp://www.gnu.org/manual/cvs/http://cvsbook.red-bean.com/
http://subversion.tigris.org/http://svnbook.red-bean.com/
http://en.wikipedia.org/wiki/Version_control
http://en.wikipedia.org/wiki/List_of_revision_control_softwarehttp://www.mhavila.com.br/link/prog/tool/control.htmlhttp://sources.redhat.com/autobook/
FIM
-
8/6/2019 curso de controle de verso
100/100
Sistema de Controle de Verso V SDSL
Marcelo de Gomensoro [email protected]