Concurrent Versions System (CVS) Alexandre Monteiro O que é CVS? Ferramenta de apoio ao gerenciamento de versões; Aplicação cliente – servidor; Controla as versões através de tags; Permite visualização de diferenças entre as versões; Permite merging entre versões conflituosas; Vantagens Integração com ferramentas de desenvolvimento; Projeto Open Source (GNU); Permite o rastreamento das atividades (histórico, usuários ativos); Armazenamento inteligente de arquivos; Múltiplas linhas de desenvolvimento em um repositório; O que não é? Mecanismo para backup Ferramenta para a construção de builds Substituto para comunicação entre desenvolvedores Conflitos não são resolvidos automaticamente Ferramenta de solicitação de mudanças Não controla requisições de mudança Arquitetura Cliente-Servidor No servidor Repositório central Armazena histórico de arquivos Armazena arquivos de controle No Cliente Área de trabalho (Workspace) Armazena uma cópia dos arquivos do repositório WinCVS Interface gráfica que permite acesso ao repositório central Permite também o uso de um repositório local Bom para projetos com um único desenvolvedor rodando Windows ou MacOS WinCVS – Tela Principal file view módulos status view Usando WinCVS Abrir GNU > WinCVS 1.2 Admin > Preferences... (ou www.wincvs.org) CVSROOT :pserver:{login}@cvs.cin.ufpe.br:/data/if7191 055 Authentication – “passwd” file on the cvs server Admin > Login... Colocar a senha... Usando WinCVS Import Module... – Carrega um novo módulo ao repositório; Add... – Adiciona um novo arquivo à um módulo do repositório; Check Out Module... – Carrega um módulo do repositório para o workspace local; Update Selection... – Carrega a nova versão do arquivo (ou diretório) selecionado do repositório para o workspace local (se houver mudanças não salvas haverá conflitos); Usando WinCVS Commit Selection... – Salva a versão local como uma nova versão no repositório; Create a Tag by Module... – Facilita o check out a partir de Tags; Create a Branch by Module... – Cria uma nova linha de desenvolvimento; Release Selection – Retira o arquivo ou diretório selecionado do controle do cvs; CVS Repository Exploring Plug-in do eclipse que permite acesso a um repositório CVS; Facilidade de uso (integração); Ótimas ferramentas de diff e merging; Código Módulos e Arquivos Eclipse – Tela Principal Histórico e Tags Adicionando um Repositório Window > Open Perspective > Other... CVS Repository Explorer; Add CVS Repository Host – cvs.cin.ufpe.br; Repository Path - /data/if7191055; User – {login}; Connection type - pserver; Use Default Port; Fluxo Ideal de Trabalho Comece sem nada. Selecione um projeto no branch (ou HEAD) e selecione Checkout (ou Replace with > Latest from Repository se o projeto já existe localmente); Isso irá apagar qualquer cópia local antiga; Faça as mudanças. Trabalhe localmente com o projeto, salvando as mudanças apenas na sua máquina; Sincronize. Quando você estiver pronto, sincronize: Update; Examine as mudanças, faça as alterações necessárias; Rode os Testes; Commit; Por prudência, repita os passos acima para garantir que não houve mudanças novamente;