Svn e processos de controle de código
Upcoming SlideShare
Loading in...5
×
 

Svn e processos de controle de código

on

  • 493 views

 

Statistics

Views

Total Views
493
Views on SlideShare
493
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Svn e processos de controle de código Svn e processos de controle de código Presentation Transcript

  • SVN E PROCESSOS DECONTROLE DE CÓDIGO
  • DEFININDO O CONTROLEComo podemos ver na citação do própriodocumento oficial, é muito facil acontecer adocumento oficial, é muito facil acontecer asobrescrita por acidente.É mais fácil, quando as cópias emdesenvolvimento se misturam a de produção e dereferência. Será explicado o por quê nas situaçõesde exemplo.
  • MODELOS DE CONTROLEOs modelos de controle devem ser um dosprimeiros tópicos ao discutir-se a implantação doSVN. São eles:1. Copy-Modify-Merge ou Copiando-Modificando-Unificando.Vamos simplificar o nome desseUnificando.Vamos simplificar o nome dessemodelo para Merge.2. Lock-Modify-Unlock ou Bloqueando-Modificando-Liberando. Vamos simplificar onome desse modelo para Lock.
  • PERSONAGENSResponsável pela validação.Grupo de desenvolvedoresDesenvolvedor
  • MAU GERENCIAMENTO DOS ARQUIVOS EMPRODUÇÃONão criadareferência aversão.Produção(Build)Repositório de desenvolvimento(Trunk)
  • REFERENCIANDO ARQUIVOS DE PRODUÇÃOProdução(Build)Repositório de produção(Tag)
  • KANBANDevemos ter um sistema deversionamento que suportealterações de usuáriosdiferentes em um mesmoarquivo ao mesmo tempo.Isso significa que no nossokanban ao lado poderiamoster desenvolvendorester desenvolvendoresdiferentes na seção doingalterando o mesmoarquivo.Nesse sentido ter umprocesso visual de quaisarquivos estão sendoalterados pode ajudar aresolver conflitos.
  • RESOLUÇÃO DE CONFLITOSRepositório deEdit ConflictsResolução do conflitoRepositório dedesenvolvimento(Trunk)Merge
  • BRANCHINGRepositório de ramificações(branches)/projeto_devn/projeto_dev1MergeRepositório de produção(Tag)O administrador pode realizar o merge necessário e liberar a versãopara produção(Tag).
  • BRANCHING (P2)/projeto_dev2/projeto_dev1Merge/projeto_devnVersões que carregam necessidade de testes e validações devem serencaminhadas para branches.Repositório deramificações(branches)
  • LOCKRepositório de desenvolvimento(Trunk)Lock(bloqueia)Repositório de desenvolvimento(Trunk)Commit- release(publica e libera)Pode-se utilizar o Lock(bloqueio) para pequenas alterações.Em um kanban poderíamos acompanhar a demanda desses arquivospara outras modificações.
  • QUEBRANDO O VERSIONAMENTOUtilizar pastas doprojeto não versionadasquebra o versionamento.Se você precisaramificar (colocar emuma pasta avulsa) a suauma pasta avulsa) a suacópia local (você sódeve ter uma*) o SVNtem um repositório sópara isso.A situação seguinteexemplifica essasafirmações.
  • QUEBRANDO O VERSIONAMENTORepositório de desenvolvimento(Trunk)Quebra de versionamento
  • QUEBRANDO O VERSIONAMENTO (P2)Repositório de desenvolvimento(Trunk)Quebra de versionamento
  • MOTIVOS PARA SE TRABALHAR COM OREPOSITÓRIO DE RAMIFICAÇÕES (BRANCHES)1. Banir mais de uma cópia local(principalmente asnão versionadas) nas máquinas clientes do SVN.Com isso evitamos subscrita.2. Separar versões de teste de versões de produção.3. Diminuir a necessidade de várias validações em umaúnica versão.única versão.4. Agilizar a liberação de versões para testes.5. Evitar que funcionalidades que não estãofinalizadas/concluídas sejam submetidas ao cliente.6. Evitar que projetos longos estejam presente somentena máquina cliente, durante a fase deimplementação.7. Resolver provisoriamente alterações concorrentes nomesmo arquivo, afim de evitar conflitos.
  • UTILIZANDO O BRANCHES.RECURSOS DO SVN.Repositório de desenvolvimento(Trunk) Repositório de ramificações(branches)/projeto_devn/projeto_dev1AlternaMantémcópia única
  • UTILIZANDO O BRANCHES.Repositório de desenvolvimento(Trunk) Repositório de ramificações(branches)/projeto_devn/projeto_dev1PublicaMERGE
  • MITOS RELACIONADOS AO UPDATEConforme vimos o update sobrescreve com a versão maisatual, as suas cópias locais. Se a versão do repositório foipublicada erroneamente, você receberá esse arquivo.Se você fez alterações que não estão publicadas o updatetentará realizar o merge caso as linhas alteradas nãoafetem suas modificações.afetem suas modificações.Caso contrário existirá um conflito, e você não perderánada, inclusive por que o SVN guardará sua cópia localcom o nome .mine, conforme você pode ver na imagem aolado.A partir daí você decide sobre o conflito. O sistema não éadivinho.
  • ARQUIVOS GERADOS NO CONFLITOfilename.ext.mineEste é seu arquivo tal como existia em sua cópia local antesde tê-la atualizado - ou seja, sem indicações de conflito.Este arquivo contém as modificações mais recentes e nadamais.filename.ext.rREVANTfilename.ext.rREVANTEste é o arquivo que serviu de revisão BASE antes deatualizar sua cópia local. Ou seja, é o arquivo que vocêassinalou para controlar antes de efetuar as modificações.filename.ext.rNOVAREVEste é o arquivo que o cliente Subversion acabou de receberdo servidor quando você atualizou sua cópia local. Estearquivo corresponde à revisão HEAD do repositório.
  • CONCLUSÕESUsar o SVN com pastas não versionadas ajuda aquebrar o versionamento.É necessário obter a cultura de que todos osarquivos de projeto devem estar sobreversionamento.versionamento.Devemos conhecer o que equipe está fazendo afimaté de evitar re-trabalho e conflitos.Podemos usar o SVN afim de resolver problemasconhecendo melhor o como seu uso foi pensado.
  • FIMAutor: Cláudio da Costa ApolônioTécnologo em Processamento de Dados – Fatec-BS(Rubens Lara)Pós-Graduando em Gerencimento de Projetos – Senac-SP (Santos)