Este é o treinamento sobre CVS criado por Marden Neubert. Seja bem vindo!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Vamos aproveitar este momento para conhecer melhor, pois isso ajudará a direcionar o treinamento de forma mais produtiva.