Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                               www.mardenneubert.com




                                       CVS
                   Concurrent Versions System

                                 Marden Neubert
                            marden@mardenneubert.com




                                                                                            0-1


      Este é o treinamento sobre CVS criado por Marden Neubert. Seja bem vindo!
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                  www.mardenneubert.com




                                         CVS
                        Sobre este Treinamento

                                              Módulo 0




                                                                                                  0-2


      Neste módulo inicial, vamos apresentar o curso em linhas gerais, seus objetivos, onde queremos
      chegar e que conhecimento é esperado dos alunos. Aproveitamos também para nos apresentar e
      saber o que vocês esperam deste treinamento.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                   www.mardenneubert.com


                                           Objetivos
          • O objetivo final do curso é capacitar os alunos a
            usar efetivamente o CVS em suas empresas
          • Ao final, os participantes serão capazes de:
               – Argumentar a favor do emprego de controle de versões
                    • Em projetos de desenvolvimento
                    • Em rotinas de administração de sistemas
               – Dimensionar e implantar o CVS
               – Usar as funcionalidades básicas do CVS para armazenar
                 históricos de arquivos, marcar liberações
               – Usar capacidades avançadas para controlar linhas de
                 código, permitir desenvolvimento paralelo
               – Definir e implantar práticas efetivas de gestão de
                 configuração
                                                                                                    0-3


      O objetivo deste treinamento é bastante amplo. A idéia não é somente ensinar a instalar e usar o
      CVS, mas transmitir boas práticas em gestão de configuração e mostrar como elas podem ser
      aplicadas com a ferramenta CVS.
      Sabemos que, por mais que o CVS seja há muito tempo o sistema de controle de versões mais
      usado, podemos ter que trabalhar, no futuro, com alguma outra ferramenta. Isso pode acontecer
      por exemplo, por uma mudança de emprego ou por uma definição de políticas da empresa em que
      trabalhamos. Meu primeiro contato com essa disciplina, por exemplo, foi com a ferramenta
      ClearCase. Somente depois, com uma mudança de emprego, vim a trabalhar com o CVS. Também
      experimentei outras ferramentas e espero que isso venha a contribuir para o curso. O pior instrutor
      é aquele “bitolado” na ferramenta que está ensinando...
      É claro que o treinamento será muito, muito prático. Mas esperem que, junto a cada laboratório,
      possamos discutir o porquê daquilo que estamos fazendo. Fiquem à vontade para contribuir com
      experiências pessoais e comentários que possam enriquecer a discussão.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                    www.mardenneubert.com


                                           Audiência
          •   Programadores, desenvolvedores de sistemas
          •   Profissionais de infra-estrutura (back-office)
          •   Administradores de sistemas
          •   Testadores, profissionais de garantia da qualidade
          •   Webmasters
          •   Gestores de configuração
          •   Gestores de mudança
          •   Gestores de projeto
          •   Gerentes de TI
                                                                                                     0-4


      Por ser amplo, acreditamos que este curso pode abordar uma audiência também bastante ampla.
      Isso não quer dizer que vamos perder o foco falando para todo o tipo de profissional. Pelo
      contrário, significa que a disciplina de gestão de configuração abrange os mais diferentes perfis
      envolvidos em projetos de software e em relacionados a TI em geral.
      Em resumo, qualquer profissional que esteja envolvido em um projeto ou uma atividade que
      envolva a disciplina de gestão de configuração e que utilize o CVS em suas atividades é audiência
      para este curso.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                     www.mardenneubert.com


                                      Pré-requisitos
          • Experiência mínima em um dos seguintes:
               – Projetos de desenvolvimento de software
               – Gestão de documentos, manutenção de sites
               – Administração de sistemas, criação/controle de scripts
          • Facilidade com o uso de linha de comando (shell)
               – Usaremos Windows e Linux nos laboratórios
          • Alguns pré-requisitos desejáveis, mas não
            essenciais, são:
               – Conhecimento de uma linguagem de programação
                    • Por exemplo: Java, C ou Perl
               – Experiência com ferramentas GNU (diff, patch, etc.)
                                                                                                       0-5


      Os pré-requisitos para assistir a este treinamento são bastante flexíveis, pois, como foi dito, CVS é
      uma ferramenta que pode ser usada por diversos perfis de profissionais. De qualquer forma,
      alguma experiência com desenvolvimento de software é altamente recomendada. Administradores
      de sistemas, que trabalham com scripts e outros arquivos de configuração do sistema operacional
      também se qualificam para este treinamento.
      Caso contrário, profissionais que trabalham com gestão de documentos, workflows, webmasters,
      etc. também podem se beneficiar do conhecimento de CVS. Por exemplo, grupos de trabalho
      acadêmicos podem colaborar usando o CVS para armazenar artigos e documentos em geral. Um
      artigo pode ser escrito por grupos geograficamente dispersos, usando o CVS como sistema de
      controle de versões. Isso é verdade sobretudo quando se utiliza alguma linguagem baseada em
      texto para a escrita do artigo, como TeX ou HTML.
      Como vamos utilizar a linha de comando durante a maior parte do curso, alguma facilidade em
      usá-la também é necessária. Os clientes gráficos para o CVS funcionam quase sempre chamando o
      executável de linha de comando por trás das cortinas. Portanto, aprendendo a dominar a linha de
      comando desvendaremos muitos detalhes complexos dessas ferramentas, que veremos mais ao fim
      do curso.
      É desejável experiência com alguma linguagem de programação, qualquer uma na verdade. Minha
      preferência é por Java, C ou Perl, portanto quando for necessário algum desenvolvimento para
      adaptar o CVS às nossas necessidades, usaremos uma dessas linguagens. Também quem já teve
      experiência com ferramentas GNU, tais como diff, patch, RCS e outras leva uma vantagem, pois o
      CVS tem integrações com esses aplicativos.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                    www.mardenneubert.com


                                         Visão Geral
          • Introdução a Gestão de Configuração e CVS (4h)
               –   Foco: Geral (todos os perfis)
               –   Apresentação do CVS, histórico, arquitetura
               –   Conceitos básicos de gestão de configuração
               –   Visão geral do uso do CVS
          • Administração do CVS (12h)
               –   Foco: Administrador de sistemas
               –   Dimensionando o servidor
               –   Instalando o CVS
               –   Criando repositórios e módulos
               –   Gerenciando back-ups
               –   Controlando o acesso
                                                                                                     0-6


      O primeiro módulo deve tomar nossa primeira manhã. É uma rápida introdução à área de gestão
      de configuração e a definição de alguns conceitos básicos, que serão usados ao longo de todo o
      treinamento. Apresentaremos também o CVS, um breve histórico e sua arquitetura de
      funcionamento, juntamente com alguns conceitos usados pela ferramenta que facilitarão o
      entendimento do restante do treinamento.
      Em seguida virá um módulo bastante prático, que tomará o restante do primeiro dia e todo o
      segundo dia. Neste módulo, mostraremos técnicas para dimensionar a capacidade necessária para
      a implantação do CVS, de acordo com as opções mais comuns de infra-estrutura das empresas.
      Em suma, veremos como escolher hardware, sistema operacional e distribuição do CVS para cada
      situação. Em seguida, aprenderemos como instalar o CVS em cada uma dessas situações, como
      criar repositórios e módulos, gerenciar back-ups e como controlar o acesso de usuários a eles. Este
      último, como se pode imaginar, é um tópico que varia de acordo com a escolha de sistema
      operacional e distribuição do CVS. Todos os temas serão fortemente embasados por laboratórios.
      Os alunos instalarão os servidores que eles mesmos utilizarão no restante do treinamento.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                www.mardenneubert.com


                                       Visão Geral
         • Uso Básico do CVS (8h)
              –   Foco: Autor (programador, usuário final)
              –   Configurando o acesso a um repositório
              –   Obtendo módulos, realizando modificações
              –   Lidando com conflitos
              –   Arquivos de configuração do cliente, variáveis de ambiente
         • Uso Avançado do CVS (8h)
              –   Foco: Gestor de configuração
              –   Gerenciando etiquetas
              –   Criando e utilizando ramos (branches)
              –   Acompanhando atividades no repositório
              –   Operações avançadas sobre o repositório
              –   Clientes gráficos e outras ferramentas auxiliares
                                                                                                0-7


      No terceiro dia, passaremos ao lado dos usuários do CVS. Inicialmente, veremos o uso básico da
      ferramenta, aquela que nos atenderá em 80% do tempo. Veremos como configurar o cliente para
      acessar um repositório específico, como obter módulos (o chamado check-out), realizar
      modificações e propagá-las para o repositório (o chamado check-in). Veremos também como lidar
      com situações em que duas mudanças foram feitas sobre um mesmo arquivo, gerando o que
      chamamos de conflito (a solução para resolver um conflito é a mescla, ou em inglês, merge).
      Configuraremos o CVS através de arquivos de configuração do cliente e variáveis de ambiente,
      nos liberando do uso repetitivo de opções de linha de comando.
      No último dia, aprenderemos o uso avançado do CVS, aqueles 20% que nos darão tanto trabalho
      quanto os outros 80%. Conheceremos os arquivos que residem naqueles subdiretórios chamados
      “CVS” dentro de nossa área de trabalho e saberemos como usá-los a nosso favor. Aprenderemos
      também como aplicar etiquetas para marcar liberações, marcando as revisões que formam um
      conjunto coerente. Criaremos e utilizaremos ramos (conhecidos em inglês pelo termo branch) e
      veremos como eles nos permitem desenvolver em paralelo mais de uma versão do mesmo sistema.
      Conheceremos operações que podem ser realizadas sobre o repositório para configurar seu
      comportamento. Veremos truques para vigiar a atividade no repositório e, por fim, tiraremos
      proveito de alguns clientes gráficos para o CVS, bem como de outras ferramentas auxiliares.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                  www.mardenneubert.com


                             Materiais dos Alunos
          • Cada aluno receberá:
              – Uma apostila com os slides apresentados durante o
                treinamento, com as notas do treinador
              – Um caderno com os laboratórios que serão realizados
                em aula
          • Estará disponível para aquisição o Guia de
             Consulta Rápida sobre CVS
              – Valor: R$ 20,00




                                                                                                   0-8


      Os alunos receberão todo o material do treinamento, incluindo estas notas do treinador. Usem este
      material como referência para seu trabalho, mas por favor não violem o copyright! Não redistribua
      este material, nem o modifique sem autorização.
      Outra fonte de referência é o Guia de Consulta Rápida sobre CVS, da Novatec, de autoria de
      Marden Neubert. Ele pode ser adquirido pelo valor de R$ 20,00.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                   www.mardenneubert.com


                                       Laboratórios
          • O curso contará com diversas
            atividades de laboratório
               – São a base prática do treinamento
          • As atividades fixarão os conceitos transmitidos e
            esclarecerão mais detalhes sobre o CVS
               – Os laboratórios são parte essencial do curso e são tão
                 importantes quanto os slides
          • Tentaremos nos dedicar o tempo necessário às
            práticas, por isso, vamos levá-las a sério!
               – Caso surja qualquer dúvida, ou seja encontrado algum
                 erro no material, resolveremos dentro do possível
                                                                                                   0-9


      Este é o momento para chamar a atenção para a parte prática do curso. A ênfase do curso é grande
      em laboratórios e atividades práticas, portanto, vamos nos dedicar a elas tanto quanto ao restante
      do material. Vamos nos concentrar na execução das práticas e procurar aprender o máximo com as
      mesmas.
      Eventualmente, podemos descobrir erros no material, ou identificar problemas de configuração
      que levam a caminhos diferentes. Vamos tentar resolver essas situações à medida que surgirem,
      mas por vezes será preciso seguir adiante. Nesses casos, pedimos que todos compreendam;
      procuraremos eliminar eventuais questões nos intervalos ou após o término do dia.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                  www.mardenneubert.com


                  Referências Gerais sobre CVS
          • Sites
              – Ximbiot (http://ximbiot.com/cvs/): empresa que presta consultoria
                em CVS, hospeda o antigo site http://www.cvshome.org
              – GNU (http://www.nongnu.org/cvs/): projeto GNU, da Free
                Software Foundation, grande propulsora de software livre
          • Livros nacionais
              – Caetano, C., CVS. Novatec, 2004.
              – Neubert, M., CVS – Guia de Consulta Rápida. Novatec, 2004.
          • Livros internacionais
              – Vesperman, J., Essential CVS. O’Reilly, 2003.
              – Fogel, K. e Bar, M., Open-Source Development with CVS, 2a
                edição. Coriolis, 2001.
              – Thomas, D. e Hunt, A., Pragmatic Version Control using CVS. The
                Pragmatic Bookshelf, 2003.

                                                                                                    0-10


      Seguem algumas referências sobre o CVS. Na web, o melhor site durante muitos anos foi o
      www.cvshome.org, hoje adotado pela empresa Ximbiot, que presta consultoria em CVS. O site da
      GNU, projeto ao qual o CVS foi associado, também traz algumas informações e links para
      downloads.
      Dentre os livros, existem duas publicações nacionais da Novatec, um livro e um guia rápido.
      Nos livros internacionais, encontramos um da O’Reilly, sempre uma editora de qualidade e dois
      outros livros alternativos, porém também de qualidade.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                  www.mardenneubert.com


                  Logística e Grade de Horários
          • Manhã
              – Início às 09:00
              – Intervalo de 15 minutos
          • Almoço
              – Planejado para as 13:00
              – Intervalo de 1 hora
          • Tarde
              – Intervalo de 15 minutos
              – Encerramento às 18:30


                                                                                                 0-11


      O treinamento tomará 8h por dia. Começaremos às 09:00, faremos uma pausa de 15min por volta
      das 11:00. O almoço será às 13:00 e voltaremos às 14:00. À tarde, faremos outra pausa por volta
      das 16:00, voltaremos e iremos até as 18:30. Outra opção é fazermos mais duas pausas de 15min
      ao longo do dia e terminarmos às 19:00.
Copyright© 2005, Marden Neubert

      © 2005 Marden Neubert                                                 www.mardenneubert.com


                            Conhecendo a Turma
         •   Seu    nome
         •   Sua    empresa
         •   Sua    função
         •   Sua    experiência
              – Trabalha com desenvolvimento ou administração de
                sistemas?
              – Já conhece o CVS?
              – Já usou o CVS?
         • Quais são suas expectativas para este curso?
         • Dúvidas? Questões? Perguntas?
                                                                                             0-12


      Vamos aproveitar este momento para conhecer melhor, pois isso ajudará a direcionar o
      treinamento de forma mais produtiva.

Mais conteúdo relacionado

PDF
Framework usar ou não usar
PPTX
Frameworks de desenvolvimento web
PDF
Tornando se um DevOps sem perder a cabeça #SE7I2016
PDF
Introdução a Frameworks
PPTX
[DevOps Summit Brasil] Procura-se: DevOps!
PDF
Procura-se: DevOps #cpbr9
PDF
Curso de CVS - Parte 1 - Introdução
PDF
Teste avaliacao usabilidade software
Framework usar ou não usar
Frameworks de desenvolvimento web
Tornando se um DevOps sem perder a cabeça #SE7I2016
Introdução a Frameworks
[DevOps Summit Brasil] Procura-se: DevOps!
Procura-se: DevOps #cpbr9
Curso de CVS - Parte 1 - Introdução
Teste avaliacao usabilidade software

Mais procurados (20)

PDF
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
PDF
Phprs meetup - deploys automatizados com gitlab
PPTX
DevOps Apresentação Encontro Rational 2013
PDF
Boas práticas para deploy contínuo com drupal
KEY
DevOps, NoOps...afinal que raios é isso?
PDF
Cultura DevOps - Integração entre infra e devel
PPTX
Integração contínua - Rumo à automação e ao DEVOPS
PDF
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
PDF
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
PPTX
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
PDF
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
PDF
Discutindo DevOps na pratica, por Danilo Sato
PDF
Plano do projeto de software SIGEM - Sistema de gestão de materiais
PDF
IFSP 2015 - Cultura DevOps
ODP
Usando MVC para agilizar o desenvolvimento
PPS
Automação de testes para equipes agile
PPT
Design patterns e tecnologias para modularização em java tdc2014
PDF
Apresentação controle de versão
PDF
O que é DevOps? Introdução à abordagem pela IBM
PDF
Quem e dev ops
DevOps II - Ambientes padronizados e Monitoramento da Aplicação | Monografia II
Phprs meetup - deploys automatizados com gitlab
DevOps Apresentação Encontro Rational 2013
Boas práticas para deploy contínuo com drupal
DevOps, NoOps...afinal que raios é isso?
Cultura DevOps - Integração entre infra e devel
Integração contínua - Rumo à automação e ao DEVOPS
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
DrupalCamp SP 2015 - DevOps, por onde começar? Por Sebastian Ferrari
Discutindo DevOps na pratica, por Danilo Sato
Plano do projeto de software SIGEM - Sistema de gestão de materiais
IFSP 2015 - Cultura DevOps
Usando MVC para agilizar o desenvolvimento
Automação de testes para equipes agile
Design patterns e tecnologias para modularização em java tdc2014
Apresentação controle de versão
O que é DevOps? Introdução à abordagem pela IBM
Quem e dev ops
Anúncio

Destaque (9)

PDF
Curso de CVS - Lab 2
PDF
Curso de CVS - Parte 4 - Avançado
PDF
Curso de CVS - Lab 4
PDF
Curso de CVS - Lab 3
PPT
CVS - Slides Parte 2 - Administração
PPT
CVS - Slides Parte 3 - Básico
PPT
CVS - Slides Parte 1 - Introdução
PPT
CVS - Slides Parte 0 - Sobre o Curso
PPTX
Shopping UOL: Uma nova perspectiva sobre comparação de preços e seu papel no ...
Curso de CVS - Lab 2
Curso de CVS - Parte 4 - Avançado
Curso de CVS - Lab 4
Curso de CVS - Lab 3
CVS - Slides Parte 2 - Administração
CVS - Slides Parte 3 - Básico
CVS - Slides Parte 1 - Introdução
CVS - Slides Parte 0 - Sobre o Curso
Shopping UOL: Uma nova perspectiva sobre comparação de preços e seu papel no ...
Anúncio

Semelhante a Curso de CVS - Parte 0 - Sobre o curso (20)

PDF
Curso de CVS - Parte 2 - Administração
PPT
Introdução a Application Life-cycle Management Open Source
PPT
Tdd On Rails
PDF
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
PPT
Introdução ao Java
PPTX
Startups e DevOps
PPTX
Sistemas de controle de versão
PPTX
Tendências e Dicas para o Desenvolvimento de Software
PPTX
PDF
Informática para Internet - Aula 03
ODP
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
DOCX
Academia do Arquiteto Globalcode
PDF
Tópicos Emergentes - DevOps
PDF
A Carreira de Desenvolvedor: do Jr ao Sênior
PDF
Slide Aula - Curso CakePHP
PDF
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
PPTX
Desconstruindo monolitos - Construindo microservicos em Delphi
PDF
Outras Metodologias Ágeis Parte 3
PDF
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
PPT
Aula05 frameworks
Curso de CVS - Parte 2 - Administração
Introdução a Application Life-cycle Management Open Source
Tdd On Rails
DevOps I - Ambientes padronizados e Monitoramento da Aplicação | Monografia I
Introdução ao Java
Startups e DevOps
Sistemas de controle de versão
Tendências e Dicas para o Desenvolvimento de Software
Informática para Internet - Aula 03
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
Academia do Arquiteto Globalcode
Tópicos Emergentes - DevOps
A Carreira de Desenvolvedor: do Jr ao Sênior
Slide Aula - Curso CakePHP
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
Outras Metodologias Ágeis Parte 3
TDC2016SP - Versionando sua infraestrutura: Como e porque fazer, baseado em c...
Aula05 frameworks

Último (17)

PDF
Banco de Dados 2atualização de Banco de d
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
ccursoammaiacursoammaiacursoammaia123456
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PDF
Jira Software projetos completos com scrum
PPTX
Analise Estatica de Compiladores para criar uma nova LP
Banco de Dados 2atualização de Banco de d
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Processos no SAP Extended Warehouse Management, EWM100 Col26
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Aula de Engenharia de Software principais caracteristicas
ccursoammaiacursoammaiacursoammaia123456
Tipos de servidor em redes de computador.pptx
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Processamento da remessa no SAP ERP, SCM610 Col15
Conceitos básicos de Redes Neurais Artificiais
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
SEMINÁRIO DE IHC - A interface Homem-Máquina
Jira Software projetos completos com scrum
Analise Estatica de Compiladores para criar uma nova LP

Curso de CVS - Parte 0 - Sobre o curso

  • 1. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com CVS Concurrent Versions System Marden Neubert marden@mardenneubert.com 0-1 Este é o treinamento sobre CVS criado por Marden Neubert. Seja bem vindo!
  • 2. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com CVS Sobre este Treinamento Módulo 0 0-2 Neste módulo inicial, vamos apresentar o curso em linhas gerais, seus objetivos, onde queremos chegar e que conhecimento é esperado dos alunos. Aproveitamos também para nos apresentar e saber o que vocês esperam deste treinamento.
  • 3. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Objetivos • O objetivo final do curso é capacitar os alunos a usar efetivamente o CVS em suas empresas • Ao final, os participantes serão capazes de: – Argumentar a favor do emprego de controle de versões • Em projetos de desenvolvimento • Em rotinas de administração de sistemas – Dimensionar e implantar o CVS – Usar as funcionalidades básicas do CVS para armazenar históricos de arquivos, marcar liberações – Usar capacidades avançadas para controlar linhas de código, permitir desenvolvimento paralelo – Definir e implantar práticas efetivas de gestão de configuração 0-3 O objetivo deste treinamento é bastante amplo. A idéia não é somente ensinar a instalar e usar o CVS, mas transmitir boas práticas em gestão de configuração e mostrar como elas podem ser aplicadas com a ferramenta CVS. Sabemos que, por mais que o CVS seja há muito tempo o sistema de controle de versões mais usado, podemos ter que trabalhar, no futuro, com alguma outra ferramenta. Isso pode acontecer por exemplo, por uma mudança de emprego ou por uma definição de políticas da empresa em que trabalhamos. Meu primeiro contato com essa disciplina, por exemplo, foi com a ferramenta ClearCase. Somente depois, com uma mudança de emprego, vim a trabalhar com o CVS. Também experimentei outras ferramentas e espero que isso venha a contribuir para o curso. O pior instrutor é aquele “bitolado” na ferramenta que está ensinando... É claro que o treinamento será muito, muito prático. Mas esperem que, junto a cada laboratório, possamos discutir o porquê daquilo que estamos fazendo. Fiquem à vontade para contribuir com experiências pessoais e comentários que possam enriquecer a discussão.
  • 4. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Audiência • Programadores, desenvolvedores de sistemas • Profissionais de infra-estrutura (back-office) • Administradores de sistemas • Testadores, profissionais de garantia da qualidade • Webmasters • Gestores de configuração • Gestores de mudança • Gestores de projeto • Gerentes de TI 0-4 Por ser amplo, acreditamos que este curso pode abordar uma audiência também bastante ampla. Isso não quer dizer que vamos perder o foco falando para todo o tipo de profissional. Pelo contrário, significa que a disciplina de gestão de configuração abrange os mais diferentes perfis envolvidos em projetos de software e em relacionados a TI em geral. Em resumo, qualquer profissional que esteja envolvido em um projeto ou uma atividade que envolva a disciplina de gestão de configuração e que utilize o CVS em suas atividades é audiência para este curso.
  • 5. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Pré-requisitos • Experiência mínima em um dos seguintes: – Projetos de desenvolvimento de software – Gestão de documentos, manutenção de sites – Administração de sistemas, criação/controle de scripts • Facilidade com o uso de linha de comando (shell) – Usaremos Windows e Linux nos laboratórios • Alguns pré-requisitos desejáveis, mas não essenciais, são: – Conhecimento de uma linguagem de programação • Por exemplo: Java, C ou Perl – Experiência com ferramentas GNU (diff, patch, etc.) 0-5 Os pré-requisitos para assistir a este treinamento são bastante flexíveis, pois, como foi dito, CVS é uma ferramenta que pode ser usada por diversos perfis de profissionais. De qualquer forma, alguma experiência com desenvolvimento de software é altamente recomendada. Administradores de sistemas, que trabalham com scripts e outros arquivos de configuração do sistema operacional também se qualificam para este treinamento. Caso contrário, profissionais que trabalham com gestão de documentos, workflows, webmasters, etc. também podem se beneficiar do conhecimento de CVS. Por exemplo, grupos de trabalho acadêmicos podem colaborar usando o CVS para armazenar artigos e documentos em geral. Um artigo pode ser escrito por grupos geograficamente dispersos, usando o CVS como sistema de controle de versões. Isso é verdade sobretudo quando se utiliza alguma linguagem baseada em texto para a escrita do artigo, como TeX ou HTML. Como vamos utilizar a linha de comando durante a maior parte do curso, alguma facilidade em usá-la também é necessária. Os clientes gráficos para o CVS funcionam quase sempre chamando o executável de linha de comando por trás das cortinas. Portanto, aprendendo a dominar a linha de comando desvendaremos muitos detalhes complexos dessas ferramentas, que veremos mais ao fim do curso. É desejável experiência com alguma linguagem de programação, qualquer uma na verdade. Minha preferência é por Java, C ou Perl, portanto quando for necessário algum desenvolvimento para adaptar o CVS às nossas necessidades, usaremos uma dessas linguagens. Também quem já teve experiência com ferramentas GNU, tais como diff, patch, RCS e outras leva uma vantagem, pois o CVS tem integrações com esses aplicativos.
  • 6. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Visão Geral • Introdução a Gestão de Configuração e CVS (4h) – Foco: Geral (todos os perfis) – Apresentação do CVS, histórico, arquitetura – Conceitos básicos de gestão de configuração – Visão geral do uso do CVS • Administração do CVS (12h) – Foco: Administrador de sistemas – Dimensionando o servidor – Instalando o CVS – Criando repositórios e módulos – Gerenciando back-ups – Controlando o acesso 0-6 O primeiro módulo deve tomar nossa primeira manhã. É uma rápida introdução à área de gestão de configuração e a definição de alguns conceitos básicos, que serão usados ao longo de todo o treinamento. Apresentaremos também o CVS, um breve histórico e sua arquitetura de funcionamento, juntamente com alguns conceitos usados pela ferramenta que facilitarão o entendimento do restante do treinamento. Em seguida virá um módulo bastante prático, que tomará o restante do primeiro dia e todo o segundo dia. Neste módulo, mostraremos técnicas para dimensionar a capacidade necessária para a implantação do CVS, de acordo com as opções mais comuns de infra-estrutura das empresas. Em suma, veremos como escolher hardware, sistema operacional e distribuição do CVS para cada situação. Em seguida, aprenderemos como instalar o CVS em cada uma dessas situações, como criar repositórios e módulos, gerenciar back-ups e como controlar o acesso de usuários a eles. Este último, como se pode imaginar, é um tópico que varia de acordo com a escolha de sistema operacional e distribuição do CVS. Todos os temas serão fortemente embasados por laboratórios. Os alunos instalarão os servidores que eles mesmos utilizarão no restante do treinamento.
  • 7. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Visão Geral • Uso Básico do CVS (8h) – Foco: Autor (programador, usuário final) – Configurando o acesso a um repositório – Obtendo módulos, realizando modificações – Lidando com conflitos – Arquivos de configuração do cliente, variáveis de ambiente • Uso Avançado do CVS (8h) – Foco: Gestor de configuração – Gerenciando etiquetas – Criando e utilizando ramos (branches) – Acompanhando atividades no repositório – Operações avançadas sobre o repositório – Clientes gráficos e outras ferramentas auxiliares 0-7 No terceiro dia, passaremos ao lado dos usuários do CVS. Inicialmente, veremos o uso básico da ferramenta, aquela que nos atenderá em 80% do tempo. Veremos como configurar o cliente para acessar um repositório específico, como obter módulos (o chamado check-out), realizar modificações e propagá-las para o repositório (o chamado check-in). Veremos também como lidar com situações em que duas mudanças foram feitas sobre um mesmo arquivo, gerando o que chamamos de conflito (a solução para resolver um conflito é a mescla, ou em inglês, merge). Configuraremos o CVS através de arquivos de configuração do cliente e variáveis de ambiente, nos liberando do uso repetitivo de opções de linha de comando. No último dia, aprenderemos o uso avançado do CVS, aqueles 20% que nos darão tanto trabalho quanto os outros 80%. Conheceremos os arquivos que residem naqueles subdiretórios chamados “CVS” dentro de nossa área de trabalho e saberemos como usá-los a nosso favor. Aprenderemos também como aplicar etiquetas para marcar liberações, marcando as revisões que formam um conjunto coerente. Criaremos e utilizaremos ramos (conhecidos em inglês pelo termo branch) e veremos como eles nos permitem desenvolver em paralelo mais de uma versão do mesmo sistema. Conheceremos operações que podem ser realizadas sobre o repositório para configurar seu comportamento. Veremos truques para vigiar a atividade no repositório e, por fim, tiraremos proveito de alguns clientes gráficos para o CVS, bem como de outras ferramentas auxiliares.
  • 8. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Materiais dos Alunos • Cada aluno receberá: – Uma apostila com os slides apresentados durante o treinamento, com as notas do treinador – Um caderno com os laboratórios que serão realizados em aula • Estará disponível para aquisição o Guia de Consulta Rápida sobre CVS – Valor: R$ 20,00 0-8 Os alunos receberão todo o material do treinamento, incluindo estas notas do treinador. Usem este material como referência para seu trabalho, mas por favor não violem o copyright! Não redistribua este material, nem o modifique sem autorização. Outra fonte de referência é o Guia de Consulta Rápida sobre CVS, da Novatec, de autoria de Marden Neubert. Ele pode ser adquirido pelo valor de R$ 20,00.
  • 9. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Laboratórios • O curso contará com diversas atividades de laboratório – São a base prática do treinamento • As atividades fixarão os conceitos transmitidos e esclarecerão mais detalhes sobre o CVS – Os laboratórios são parte essencial do curso e são tão importantes quanto os slides • Tentaremos nos dedicar o tempo necessário às práticas, por isso, vamos levá-las a sério! – Caso surja qualquer dúvida, ou seja encontrado algum erro no material, resolveremos dentro do possível 0-9 Este é o momento para chamar a atenção para a parte prática do curso. A ênfase do curso é grande em laboratórios e atividades práticas, portanto, vamos nos dedicar a elas tanto quanto ao restante do material. Vamos nos concentrar na execução das práticas e procurar aprender o máximo com as mesmas. Eventualmente, podemos descobrir erros no material, ou identificar problemas de configuração que levam a caminhos diferentes. Vamos tentar resolver essas situações à medida que surgirem, mas por vezes será preciso seguir adiante. Nesses casos, pedimos que todos compreendam; procuraremos eliminar eventuais questões nos intervalos ou após o término do dia.
  • 10. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Referências Gerais sobre CVS • Sites – Ximbiot (http://ximbiot.com/cvs/): empresa que presta consultoria em CVS, hospeda o antigo site http://www.cvshome.org – GNU (http://www.nongnu.org/cvs/): projeto GNU, da Free Software Foundation, grande propulsora de software livre • Livros nacionais – Caetano, C., CVS. Novatec, 2004. – Neubert, M., CVS – Guia de Consulta Rápida. Novatec, 2004. • Livros internacionais – Vesperman, J., Essential CVS. O’Reilly, 2003. – Fogel, K. e Bar, M., Open-Source Development with CVS, 2a edição. Coriolis, 2001. – Thomas, D. e Hunt, A., Pragmatic Version Control using CVS. The Pragmatic Bookshelf, 2003. 0-10 Seguem algumas referências sobre o CVS. Na web, o melhor site durante muitos anos foi o www.cvshome.org, hoje adotado pela empresa Ximbiot, que presta consultoria em CVS. O site da GNU, projeto ao qual o CVS foi associado, também traz algumas informações e links para downloads. Dentre os livros, existem duas publicações nacionais da Novatec, um livro e um guia rápido. Nos livros internacionais, encontramos um da O’Reilly, sempre uma editora de qualidade e dois outros livros alternativos, porém também de qualidade.
  • 11. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Logística e Grade de Horários • Manhã – Início às 09:00 – Intervalo de 15 minutos • Almoço – Planejado para as 13:00 – Intervalo de 1 hora • Tarde – Intervalo de 15 minutos – Encerramento às 18:30 0-11 O treinamento tomará 8h por dia. Começaremos às 09:00, faremos uma pausa de 15min por volta das 11:00. O almoço será às 13:00 e voltaremos às 14:00. À tarde, faremos outra pausa por volta das 16:00, voltaremos e iremos até as 18:30. Outra opção é fazermos mais duas pausas de 15min ao longo do dia e terminarmos às 19:00.
  • 12. Copyright© 2005, Marden Neubert © 2005 Marden Neubert www.mardenneubert.com Conhecendo a Turma • Seu nome • Sua empresa • Sua função • Sua experiência – Trabalha com desenvolvimento ou administração de sistemas? – Já conhece o CVS? – Já usou o CVS? • Quais são suas expectativas para este curso? • Dúvidas? Questões? Perguntas? 0-12 Vamos aproveitar este momento para conhecer melhor, pois isso ajudará a direcionar o treinamento de forma mais produtiva.