Intro


Descrição rápida sobre como usar o CVS.

Linha de comando


"É na linha de comando que a gente aprende de verdade"
- Machado de Assis

Primeiro passo:

Instalar o cvs (no debian ou ubuntu).
aptitude install cvs
Para instalar o cvs no gentoo:
emerge cvs
(se estiver em outra distro procure no google ou vá para a página de download oficial)
Pronto, o cvs está instalado.
Agora temos que criar a pasta onde colocaremos os arquivos do cvs.
mkdir ~/cvs
cd ~/cvs

Segundo passo:

Conectar-se ao cvs da incubadora.
cvs -d :ext:USUARIO@incubadora.fapesp.br:/cvsroot/arca co culturadigital/turoriais

Onde 'culturadigital/turoriais' é o projeto que eu vou pegar (os tutoriais, escritos 'turoriais' por motivos históricos, da cultura digital). Para pegar o projeto do 'estudio livre', por exemplo, usaria 'estudiolivre' (você pode navegar por todos os projetos, ou 'pastas', do cvs da Arca). Ao invés de USUARIO você coloca o seu username da incubadora (caso não tenha um username, cadastre-se na incubadora e depois mande um email pra hacklab@estudiolivre.org pedidno o direito de 'commit' e alguém te ajuda). Aí você responde à pergunta dizendo que você confia no site ao qual está conectando:
yes
(e digita a senha)

Agora aguarde, pode (e vai) demorar bastante, mas das próximas vezes ele só vai pegar as mudanças feitas recentemente, aí demora bem menos. Pronto, agora você tem todas os últimos tutoriais que estão no CVS.

Terceiro passo:

O que fazer com tudo isso? agora você pode começar a editar. a contribuir, colaborar. na verdade, enquanto escrevo esse tutorial estou fazendo isso. o que eu faço então? Entre na pasta em que deseja alterar arquivos, no nosso caso /culturadigital/turoriais;

cd culturadigital/turoriais
emacs usando_cvs

(Aí eu escrevo esse texto que você leu aí em cima!)
Depois de editar o arquivo eu tenho que enviá-lo ao cvs para que todos possam obtê-lo.

Quarto passo:

Como o arquivo que estou fazendo é novo, tenho que dizer ao cvs que ele esta sendo adicionado:
cvs add usando_cvs
(coloco o meu password)
cvs add: scheduling file `usando_cvs' for addition
cvs add: use `cvs commit' to add this file permanently

O que significa que da próxima vez que você disser "pronto, acabei de fazer alguma coisa importante" e 'commitar' as suas modificações ele vai enviar também o arquivo 'usando_cvs'.
Como eu só vou modificar esse arquivo procedo para o commit. Mas sabemos que o cvs vai querer que eu comente o meu commit. Ou seja, vai pedir pra eu entrar um texto descrevendo o meu 'commit', ou seja, um texto com o título 'o que eu fiz'. Pra isso ele vai usar o seu editor preferido, definido na variável 'EDITOR' do seu terminal. Eu uso o 'jed' pra essas coisas:
export EDITOR=jed;

Quinto passo:

Finalmente, mando os arquivos para o servidor:
cvs commit

Aí ele vai entrar no Jed:



Escreva seu comentário e clique em ctrl + x + ctrl +c

(Aí eu escrevo: 'iniciando o tutorial sobre como usar o cvs.
Ainda falta a parte sobre updates.' salvo o arquivo e fecho o jed.)
É mostrada a mensagem:
Mailing the commit message...

Agora eu sei que o meu arquivo está 'sincronizado' com o cvs. Ou seja, se alguém começar a trabalhar agora, verá o meu arquivo e poderá modificá-lo.

Sexto passo:

Vou almoçar e volto. Agora eu não sei se alguém modificou alguma coisa no servidor enquanto almoçava. Então não posso começar a mudar as coisas que estão no meu computador pois não tenho sei se tenho a versão mais recente. Se eu mudasse eu não poderia mandar o que eu acabara de fazer pois correria o risco de dizer ao servidor:'esta é a ultima versão da pasta culturadigital/turoriais' indevidamente. muito indevidamente, eu iria apagar todo o trabalho dos que acabaram de enviar alguma coisa (não é bem assim, mas vá...). Mas de qualquer forma eu poderia acabar fazendo coisas à toa (vai que alguém fez um checkout e acabou de escrever esse tutorial!). Enfim, eu faço uma nova 'sincronização' com o servidor, um 'update':
cvs update -dP

Que pede para o servidor todas as últimas modificações feitas e que coloque-as no meu computador.

Pronto, posso voltar ao quinto passo e tudo sempre dará certo.

Interfaces Gráficas


Montando um ambiente de desenvolvimento com eclipse.

Pra quando as dúvidas surgirem...

Algumas respostas:

cvs remove

cvs add com diretórios!

conflitos na hora do update/commit

Última alteração: 28/08/2006 às 18:56, por: rhwinter