<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-594529125490734918</id><updated>2009-09-23T19:02:17.703-07:00</updated><title type='text'>to_programmers = (java + ruby) * tecnologia;</title><subtitle type='html'>&lt;i&gt;Tutoriais EXTREMAMENTE práticos sobre tecnologia da informação.&lt;br /&gt;O objetivo desse blog não é explicar o 'o quê' e sim ensinar o 'como' fazer.&lt;/i&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://2programmers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/594529125490734918/posts/default'/><link rel='alternate' type='text/html' href='http://2programmers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>&lt;b&gt;Reinaldo de O. Castro&lt;/b&gt;</name><uri>http://www.blogger.com/profile/13600134990998930182</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-594529125490734918.post-146434050393615818</id><published>2008-07-09T16:25:00.001-07:00</published><updated>2008-07-09T17:16:52.958-07:00</updated><title type='text'>Tutorial sobre Subversion  - Parte 2: Criando uma Cópia de Trabalho Local e  Comandos Básicos do Dia-a-Dia</title><content type='html'>No post anterior, aprendemos a como configurar um repositório Subversion (SVN) em um servidor. Clique &lt;a href="http://2programmers.blogspot.com/2008/07/tutorial-sobre-subversion-parte-1.html"&gt;aqui&lt;/a&gt; para maiores detalhes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Criando uma Cópia de Trabalho na Máquina Local&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para criar uma cópia de trabalho, utilize o comando:&lt;br /&gt;&lt;br /&gt;svn checkout file:///c:/repositorio/trunk c:/copia1 (Win)&lt;br /&gt;svn checkout file:///repositorio/trunk c:/copia1 (Linux)&lt;br /&gt;&lt;br /&gt;Obs1: o diretório copia1 não deve existir previamente.&lt;br /&gt;&lt;br /&gt;Obs2:  o protocolo file:/// deve ser usado quando o repositório Subversion e a cópia de trabalho local estão na mesma máquina; caso as máquinas sejam diferentes (repositório Subversion em uma e cópia de trabalho em outra) o checkout deve ser utilizado o protocolo svn:// da seguinte forma&lt;br /&gt;&lt;br /&gt;svn checkout svn://&lt;ip&gt;/repositorio/trunk c:/copia1 (Win)&lt;br /&gt;svn checkout svn://&lt;ip&gt;/repositorio/trunk c:/copia1 (Linux)&lt;br /&gt;&lt;br /&gt;No tutorial será usado o protocolo file:///, caso você esteja em máquinas diferentes (repositório Subversion e cópia de trabalho local), basta substituir pelo protocolo svn:// como acima.&lt;br /&gt;&lt;br /&gt;Obs3: o checkout deve ser feito em cima da pasta trunk, que é a linha principal de desenvolvimento do projeto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sincronizando a Cópia de Trabalho com o Repositório Subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para atualizar sua cópia de trabalho com os arquivos que estão no repositório Subversion, execute o comando:&lt;br /&gt;&lt;br /&gt;svn update c:/copia1 (Win)&lt;br /&gt;snv update /copia1 (Linux)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Marcando um Arquivo para Versionamento na Cópia de Trabalho&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para marcar um arquivo para versionamento na cópia de trabalho, use o comando:&lt;br /&gt;&lt;br /&gt;svn add c:/copia1/teste.txt (Win)&lt;br /&gt;svn add /copia/teste.txt (Linux)&lt;br /&gt;&lt;br /&gt;Obs1: considera-se aqui que você criou um arquivo teste.txt no diretório copia1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Enviando as Alterações da Cópia Local para o Repositório Subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para enviar as alterações que você realizou em sua cópia local (nesse caso, somente a adição de um arquivo, mas o comando serve para qualquer tipo de alteração da cópia local), utilize o comando:&lt;br /&gt;&lt;br /&gt;svn commit c:/copia1 -m "Adicao do arquivo teste.txt." (Win)&lt;br /&gt;svn commit /copia1 -m "Adicao do arquivo teste.txt." (Linux)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Removendo um Arquivo Versionado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para remover um arquivo versionado, não basta excluí-lo via o sistema operacional, pois a próxima vez que um update for executado na cópia de trabalho local, o arquivo será restaurado. Dessa forma, para excluí-lo locamente, mas também no repositório Subversion, use o comando:&lt;br /&gt;&lt;br /&gt;svn delete c:/copia1/teste.txt&lt;br /&gt;svn delete /copia1/teste.txt&lt;br /&gt;&lt;br /&gt;Obs1: o comando delete afeta o repositório Subversion somente após a execução do comando commit.&lt;br /&gt;&lt;br /&gt;&lt;/ip&gt;&lt;/ip&gt;&lt;span style="font-weight: bold;"&gt;Referências&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Documentação do Subversion (é automaticamente instalada junto com o Subversion);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Glossário&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;cópia de trabalho: estrutura de diretórios, em uma máquina local, que corresponde a um projeto armazenado em um repositório Subversion (este último localizado em um servidor).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/594529125490734918-146434050393615818?l=2programmers.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=594529125490734918&amp;postID=146434050393615818' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/594529125490734918/posts/default/146434050393615818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/594529125490734918/posts/default/146434050393615818'/><link rel='alternate' type='text/html' href='http://2programmers.blogspot.com/2008/07/tutorial-sobre-subversion-parte-2.html' title='Tutorial sobre Subversion  - Parte 2: Criando uma Cópia de Trabalho Local e  Comandos Básicos do Dia-a-Dia'/><author><name>&lt;b&gt;Reinaldo de O. Castro&lt;/b&gt;</name><uri>http://www.blogger.com/profile/13600134990998930182</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04862230070168009079'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-594529125490734918.post-7034161432565981032</id><published>2008-07-07T18:12:00.000-07:00</published><updated>2008-12-04T13:58:05.262-08:00</updated><title type='text'>Tutorial sobre Subversion - Parte 1:  Configurando um Repositório</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Iniciando o Servidor Subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Após a instalação do &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;, abra um console do seu sistema operacional e inicie o servidor por meio do comando:&lt;br /&gt;&lt;br /&gt;svnserve -d&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Criando o Repositório Subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Crie o repositório do seu projeto por meio do comando (observe o respectivo comando em relação ao SO que você usa):&lt;br /&gt;&lt;br /&gt;svnadmin create c:/repositorio (Win)&lt;br /&gt;svnadmin create /repositorio (Linux)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Habilitando Acesso Autenticado ao Repositório Subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Habilite somente o acesso autenticado ao repositório editando o arquivo repositorio/conf/svnserve.conf e descomentando as seguintes linhas (retire o # inicial de cada linha para descomentá-las):&lt;br /&gt;&lt;br /&gt;# [general]&lt;br /&gt;# auth-access = write&lt;br /&gt;# password-db = passwd&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Configurando os Usuários que Têm Acesso ao Repositório Subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Determine quais são os usuários que terão acesso ao repositório editando o arquivo repositorio/conf/passwd e descomentando as seguintes linhas (retire o # inicial de cada linha para descomentá-las):&lt;br /&gt;&lt;br /&gt;# [users]&lt;br /&gt;# harry = harryssecret&lt;br /&gt;# sally = sallyssecret&lt;br /&gt;&lt;br /&gt;Após isso, substitua os nomes dos usuários que estão no arquivo (harry e sally) para os nomes das pessoas da sua equipe de desenvolvimento, bem como altere também as respectivas senhas (harryssecret e sallyssecret).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Criando a Estrutura de Diretórios Template para Repositórios Subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Crie um diretório chamado template e dentro dele crie, novamente, os três seguintes diretórios (essa é a estrutura inicial que será importada para o repositório que você criou, sendo recomendada pelos próprios desenvolvedores do Subversion):&lt;br /&gt;&lt;br /&gt;trunk&lt;br /&gt;branches&lt;br /&gt;tags&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Importando a Estrutura de Diretórios Template para o Repositório Subversion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Importe o diretório template para o repositório por meio do comando:&lt;br /&gt;&lt;br /&gt;svn import c:/template file:///c:/repositorio -m "Importacao inicial." (Win)&lt;br /&gt;svn import /template file:///repositorio -m "Importacao inicial." (Linux)&lt;br /&gt;&lt;br /&gt;Nesse comando, o parâmetro -m especifica a mensagem relativa a importação inicial, sendo obrigatório.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Referências&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Documentação do Subversion (é automaticamente instalada junto com o Subversion);&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Glossário&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;branches: diretório em que são feitos testes, por exemplo, de experimentação de tecnologia, de adoção de novos paradigmas de programação, entre outros; existe principalmente para que tais testes não sejam feitos na linha principal de desenvolvimento (trunk).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;repositório: local de armazenamento dos arquivos no servidor, sendo gerenciado pelo Subversion.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;tags: diretório em que são armazenadas as versões que são disponibilizadas para o cliente; por exemplo, versão 1.0, versão 1.1, etc.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;trunk: diretório principal de desenvolvimento em que toda (ou quase toda) a equipe trabalha.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/594529125490734918-7034161432565981032?l=2programmers.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=594529125490734918&amp;postID=7034161432565981032' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/594529125490734918/posts/default/7034161432565981032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/594529125490734918/posts/default/7034161432565981032'/><link rel='alternate' type='text/html' href='http://2programmers.blogspot.com/2008/07/tutorial-sobre-subversion-parte-1.html' title='Tutorial sobre Subversion - Parte 1:  Configurando um Repositório'/><author><name>&lt;b&gt;Reinaldo de O. Castro&lt;/b&gt;</name><uri>http://www.blogger.com/profile/13600134990998930182</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='04862230070168009079'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>