Concurrent Version System (uma introdução) Seminário do curso de Programação eXtrema Alfredo Goldman Departamento de Ciência da Computação 15 de agosto de 2001 Resumo 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 2 Primeiros passos Criar um projeto. Escolher um diretório /usr/local/cvs Inicializar as variáveis de ambiente (opcional) export CVSROOT=/usr/local/cvs Escolher um editor (comentários) export CVSEDITOR=vi (opcional) Inicializar o cvs cvs init 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 3 Primeiros passos Colocar os arquivos iniciais. Ir para o diretório onde estão os arquivos cd /home/gold/projetoCD onde devem estar apenas os arquivos do projeto ! Inserir os arquivos em um projeto cvs cvs import NomeSubDiretório Fornecedor Versão caso sem variáveis de ambiente: cvs -d /home/local/cvs import -m “Comentários sobre esta versão” NomeSubDiretório Fornecedor Versão 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 4 Dica Dar um nome (alias) ao projeto. Ir para um diretório temporário. cd algumdir Abrir o projeto modules cvs checkout CVSROOT/modules Acrescentar ao arquivo CVSROOT/modules Atalho NomeSubDiretório em seguida cvs commit -m “Alias Atalho adicionado” modules cd .. cvs release -d CVSROOT 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 5 Usando CVS (na mesma máquina) Algumas opções. Recuperar a última versão disponível. cd algumdir cvs checkout NomeSubDiretório cd NomeSubDiretório Recuperar a versão xyz cvs checkout -r xyz NomeSubDiretório Atualizar um arquivo cvs commit ClasseX.java cvs commit // atualiza todos 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 6 Usando CVS (na mesma máquina) Mas se aparece uma mensagem de erro. ... cvs commit: Up-to-date chech failed for ‘ClasseX.java’ cvs [commit aborted] ... O arquivo em questão foi modificado! O arquivo deve ser corrigido antes de ser salvo Pode se tentar o cvs update ClasseX.java 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 7 Usando CVS (na mesma máquina) Outros comandos úteis. Inserção/remoção cvs add ClasseY.java quando o commit for feito este arquivo será adicionado cvs remove ClasseZ.cpp Diretórios também podem ser adicionados mas não podem ser removidos Histórico de modificações cvs log ClasseX.java opções -d restringe por data -w restringe por autor 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 8 Usando CVS (na mesma máquina) Outros comandos úteis. Estado atual de um arquivo cvs status -v ClasseY.java (mostra também as versões estáveis do arquivo, tags) Diferença entre versões de arquivo cvs diff -r 1.2 -r 1.5 ClasseZ.java Prefixos do cvs U - updated P - patched M - modified C - Conflict 15 / Agosto / 2001 T - tagged ? - Unknown Copiegauche par Alfredô Goldman 9 Usando CVS (em outra máquina) Por rsh. Utiliza-se a opção -d cvs -d :ext:[gold@]jaca.ime.usp.br:/usr/local/cvs checkout JB (para os próximos acessos não é necessário o -d) Cliente/servidor (pserver) coloca-se no ar o servidor (seção 2.9.3, edita-se o inetd.conf, /etc/services,...) cria-se um arquivo de senhas ($CVSROOT/CVSROOT/passwd) Para acessar: cvs -d :pserver:[email protected]:/usr/local/cvs login [logout] 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 10 Outros conceitos CVS Marcas (tags) para marcar versões estáveis cvs tag NomeDoTag [arquivos] Ramificações O projeto pode seguir por várias direções. 15 / Agosto / 2001 Copiegauche par Alfredô Goldman 11