terça-feira, fevereiro 13, 2007

Criar e usar um servidor SVN

Colaboração: Andre Murbach Maidl

Subversion é um software muito usado para controle de versões de sistemas. Muitas vezes desenvolvemos um projeto e precisamos ter um bom controle do seu versionamento, nesse caso o svn é uma ferramenta muito interessante.

Nesse documento estão descritas algumas maneiras de configurar um servidor svn e alguns comandos úteis para usá-lo.

Os pacotes necessários para a instalação e configuração são os seguintes:

  • httpd ou apache ou apache2 (depende da distribuição)
  • subversion
  • mod_dav_svn ou subversion-server ou libapache2-svn (depende da distribuição)

Partiremos do princípio que os pacotes necessários já estão instalados na máquina que será o servidor svn.

Criar um repositório svn no servidor

Nos passos abaixo usaremos um repositório chamado /svn, mas se desejar criá-lo em /home/usuario/svn, ou em qualquer outro local desejado, basta trocar /svn pelo qual será usado em seu servidor.

Antes de criar o repositório precisamos ter o diretório correspondente no sistema, por isso, use o comando abaixo para criá-lo:

  # mkdir /svn

Agora vamos executar o comando necessário para criar o repositório /svn, vale lembrar que o comando abaixo deve ser executado em um diretório vazio, porém, já existente no sistema, pois o subversion irá apenas criar toda a estrutura necessária para o controle de versões, então execute o comando abaixo para tal procedimento:

  # svnadmin create /svn

Vale uma observação aqui, até a versão 1.1 do subversion, o tipo de repositório padrão era o Berkeley DB, mas a partir da versão 1.2 o padrão passou a ser o FSFS. O suporte FSFS apareceu na versão 1.1. Na 1.0 apenas o Berkeley DB era suportado.

Para especificar o tipo do repositório pode-se usar o argumento --fs-type:

  # svnadmin create --fs-type fsfs /svn
# svnadmin create --fs-type bdb /svn

O repositório criado estará vazio e começará a contar a partir da revisão 0 (zero), a qual corresponderá à sua criação.

Para mais informações sobre o tipo do repositório acesse http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html

Configurar o apache

O apache é usado porque além de ser o servidor http mais usual, através do módulo mod_dav_svn.so ele consegue acessar um repositório svn e torná-lo acessível para clientes que usam o protocolo WebDAV/DeltaV, (é o caso do comando svn, o qual veremos ainda neste documento), ele é uma extensão do protocolo HTTP.

Onde o arquivo de configuração, do subversion, é armazenado pode variar de distribuição para distribuição. Por exemplo, ele pode estar tanto em /etc/httpd/conf.d/subversion.conf, como em /etc/apache/conf/conf.d/subversion.conf, ou até mesmo em outro diretório.

Muitas vezes é possível localiza-lo através do comando locate:

  # locate subversion.conf

Por isso, neste documento, trataremos o arquivo de configuração apenas por: subversion.conf.

Vamos abordar duas formas de configuração, são elas:

  • acesso irrestrito para leitura e escrita (sem senha)
  • acesso irrestrito para leitura e acesso restrito para escrita (com senha)

Antes de tudo faça um backup do arquivo de configuração original:

  # cp subversion.conf subversion.conf.orig

Ajustar o dono do svn

Como vamos configurar o apache para o gerenciamento do repositório, é importante configurarmos o seu dono, pois estaremos lendo e escrevendo no svn através do protocolo HTTP.

Mude o dono do diretório /svn de root para apache:

  # chown -R apache.apache /svn

Essa modificação é necessária para que o svn fique acessível via http. Caso o usuário root continuasse como dono do diretório e dos demais arquivos, o apache não teria permissões para acessá-los. Em algumas distribuições o usuário chama-se www ao invés de apache, verifique o nome do usuário do apache antes de executar esse comando.

Acesso irrestrito para leitura e escrita

Abaixo segue um exemplo de configuração do arquivo subversion.conf para o acesso sem senha. Use-o caso deseje configurar um servidor svn sem senha.

  # inicio do arquivo subversion.conf

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so


DAV svn
SVNPath /svn
# desliga senha
SVNPathAuthz off


# fim do arquivo subversion.conf

Acesso irrestrito para leitura e acesso restrito para escrita

Abaixo segue um exemplo de configuração do arquivo subversion.conf para o acesso com senha. Use-o caso deseje configurar um servidor svn com senha para escrita.

  # inicio do arquivo subversion.conf

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so


DAV svn
SVNPath /svn
# autenticando um usuario
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-passwd
# qualquer operacao que nao seja leitura requer um usuario valido

Require valid-user



# fim do arquivo subversion.conf

Mais informações sobre como configurar o arquivo subversion.conf

Criar o arquivo de senha

Se o svn foi configurado com senha, como em um dos exemplos acima, será necessário criar o arquivo /etc/svn-passwd, ou o correspondente da sua configuração, onde serão armazenados os usuários, os quais terão acesso de escrita no repositório /svn e suas respectivas senhas.

Ele pode ser criado por meio do seguinte comando:

  # htpasswd -c /etc/svn-passwd root

O comando acima cria o arquivo /etc/svn-passwd e pede que a senha do usuário root seja informada.

Para adicionar um novo usuário pode-se usar o comando abaixo:

  # htpasswd /etc/svn-passwd andre

O usuário digita a senha e o arquivo é automaticamente atualizado. Ou o usuário executa o seguinte comando:

  # htpasswd -n andre

Envia o resultado do comando para o administrador do svn e ele inclui o usuário e a sua respectiva senha no arquivo correspondente.

Iniciar/Reiniciar o apache

Para efetivar as configurações e tornar o svn acessível através da url: http://nome_do_servidor/svn, precisamos iniciar o apache caso ele esteja parado ou reiniciá-lo, se ele já estiver sendo executado na máquina.

O comando abaixo reinicia o apache estando ele ligado ou desligado:

  # service httpd stop && service httpd start

Observe que o comando pode ser diferente dependendo da distribuição que estiver sendo usada, ou seja, ao invés de httpd pode ser apache ou até mesmo apache2.

Agora o seu repositório svn já pode ser acessado, usando um navegador qualquer, através do link:

http://servidor/svn

Se o servidor svn foi configurado em sua rede, em casa, e não há nenhum dns configurado, para responder pelos nomes das máquinas, pode-se usar apenas o ip do servidor:

http://ip_do_servidor/svn

Alguns comandos úteis para manusear projetos no svn configurado

Após criarmos um repositório svn é interessante conhecermos alguns comandos que possibilitam o manuseio desta ferramenta.

Se uma das variáveis de ambiente $SVN_EDITOR, $VISUAL ou $EDITOR não estiverem definidas, provavelmente uma mensagem de erro, semelhante a que segue abaixo, será exibida ao tentar efetuar uma alteração no svn.

svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found

Para definir o editor de texto padrão, o qual será usado para escrever os logs dos commits, pode-se usar a seguinte linha de comando:

  # export SVN_EDITOR='vim'

Acima definimos que o editor padrão será o vim.

Para que todos os usuários tenham essa variável configurada, basta adicionar a linha de comando acima no arquivo /etc/profile.

Criar um diretório no svn

Antes de adicionarmos um projeto em nosso repositório precisamos criar o diretório onde ele ficará armazenado. Pode-se fazer isso através do seguinte comando:

  # svn mkdir http://servidor/svn/projeto

Importar um projeto para o svn

Algumas vezes já temos um projeto em algum canto de nossa máquina; Importe-o para o svn usando a linha de comando abaixo:

  # svn import /tmp/projeto http://servidor/svn/projeto

O comando acima importará todos os arquivos do diretório /tmp/projeto para o repositório projeto em http://servidor/svn/

Uma outra maneira de executar o procedimento acima é acessar o diretório e então importá-lo para o svn:

  # cd /tmp/projeto
# svn import http://servidor/svn/projeto

Baixar um projeto do svn

Quando for preciso efetuar modificações em um projeto que já está no svn, antes é preciso fazer o checkout, ou seja, efetuar o download dos arquivos correspondentes ao projeto.

Efetuando o checkout:

  # svn co http://servidor/svn/projeto

Efetivar alterações em um projeto do svn

Depois de concluídas as modificações necessárias precisamos colocar a nova revisão do projeto no svn, para isso precisamos efetuar um commit.

De dentro do diretório principal do projeto efetue o commit:

  # svn commit

Listar arquivos de um projeto

Depois de efetuar várias mudanças em um projeto baixado do svn, é importante poder listar o seu conteúdo e saber quais arquivos estão armazenados e quais não estão no seu respectivo repositório no svn.

Para isso, execute o seguinte comando no diretório principal do projeto:

  # svn list

Adicionar arquivos a um projeto

No decorrer de um projeto novos arquivos surgem e precisam ser adicionados no repositório svn.

Para efetuar essa operação pode-se usar o seguinte comando:

  # svn add projeto.c

Quando o commit for efetuado, o arquivo projeto.c será adicionado à árvore correspondente do projeto em que estava trabalhando.

Remover arquivos de um projeto

A medida que arquivos vão sendo incluso no projetos, há a necessidade de excluir alguns.

Use o seguinte comando para efetuar tal operação:

  # svn rm projeto.c

É possível remover um projeto inteiro do svn, para isto basta executar:

  svn rm http://servidor/svn/projeto

Quando o commit for efetuado, o arquivo projeto.c será removido da árvore onde ele era armazenado e na nova revisão ele não fará mais parte do projeto.

Verificar as alterações antes de efetuar um commit

Na maioria das vezes é interessante, antes de efetuar o commit, verificar quais são as modificações. Para isso usamos o svn diff. Porém, se existirem muitas modificações, é preciso jogar a saída do comando para um editor de texto, sendo assim possível analisar todo o diff gerado.

Executando apenas o svn diff:

  svn diff

Jogando a saída para um editor de texto, no caso o vim:

  svn diff | vim -

Lembrando que o comando acima mostra as diferenças do diretório onde foi executado e o seu correspondente no svn. Para verificar todas as modificações de um projeto, basta executá-lo na raiz principal dele.

Verificar o log de um projeto Muitas vezes esquecemos o que fizemos, por isso, ao efetuar um commit o svn sempre pede uma mesagem para ser adicionada ao log do projeto. Para verificar os logs de um determinado projeto: efetue o checkout dele, acesse o diretório onde ele foi baixado e execute o seguinte comando:
  svn log
==Obter ajuda dos próprios comandos== Para verificar os comandos disponíveis use:
  svn help
Uma série de comandos, possíveis, será listada. Para obter informções sobre um comando em específico use:
  svn comando --help

29 Comments:

Anonymous Anônimo said...

Que dica você da a alguem que quer ser administrador de redes(unix,linux,windows) ?

sábado, 01 março, 2008  
Anonymous Anônimo said...

viagra 34434 viagra uk cheap purchase buy viagra 34434 viagra rrp australia viagra paypal buy viagra soft online cheapest viagra prices watermelon viagra what does viagra do viagra alternatives buying viagra non prescription viagra buy generic viagra viagra effects on women

terça-feira, 10 novembro, 2009  
Anonymous Anônimo said...

http://markonzo.edu Jonny was here ashley furniture [url=http://jguru.com/guru/viewbio.jsp?EID=1536072]ashley furniture[/url], cnvmx, allegiant air [url=http://jguru.com/guru/viewbio.jsp?EID=1536075]allegiant air[/url], dxoehy, pressure washers [url=http://jguru.com/guru/viewbio.jsp?EID=1536078]pressure washers[/url], cyyww, dishnetwork [url=http://jguru.com/guru/viewbio.jsp?EID=1536080]dishnetwork[/url], gjcoqga, adt security [url=http://jguru.com/guru/viewbio.jsp?EID=1536076]adt security[/url], igoep,

quinta-feira, 25 fevereiro, 2010  
Anonymous Anônimo said...

Do You interesting of [b]Generic Viagra in Canada[/b]? You can find below...
[size=10]>>>[url=http://listita.info/go.php?sid=1][b]Generic Viagra in US and Canada[/b][/url]<<<[/size]

[URL=http://imgwebsearch.com/30269/link/buy%20viagra/1_valentine3.html][IMG]http://imgwebsearch.com/30269/img0/buy%20viagra/1_valentine3.png[/IMG][/URL]
[URL=http://imgwebsearch.com/30269/link/buy%20viagra/3_headsex1.html][IMG]http://imgwebsearch.com/30269/img0/buy%20viagra/3_headsex1.png[/IMG][/URL]
[b]Bonus Policy[/b]
Order 3 or more products and get free Regular Airmail shipping!
Free Regular Airmail shipping for orders starting with $200.00!

Free insurance (guaranteed reshipment if delivery failed) for orders starting with $300.00!
[b]Description[/b]

Generic Viagra (sildenafil citrate; brand names include: Aphrodil / Edegra / Erasmo / Penegra / Revatio / Supra / Zwagra) is an effective treatment for erectile dysfunction regardless of the cause or duration of the problem or the age of the patient.
Sildenafil Citrate is the active ingredient used to treat erectile dysfunction (impotence) in men. It can help men who have erectile dysfunction get and sustain an erection when they are sexually excited.
Generic Viagra is manufactured in accordance with World Health Organization standards and guidelines (WHO-GMP). Also [url=http://twitter.com/tlkzfdn]Cheap Viagra 25mg[/url] you can find on our sites.
Generic [url=http://wumenalu.freehostia.com]Best Price 100mg Viagra[/url] is made with thorough reverse engineering for the sildenafil citrate molecule - a totally different process of making sildenafil and its reaction. That is why it takes effect in 15 minutes compared to other drugs which take 30-40 minutes to take effect.
[b]free trial female viagra
Viagra Legal Kaufen
viagra forums
viagra pages search edinburgh find
Viagra In Manila
a viagra discount
take alternative viagra and take nitrates
[/b]
Even in the most sexually liberated and self-satisfied of nations, many people still yearn to burn more, to feel ready for bedding no matter what the clock says and to desire their partner of 23 years as much as they did when their love was brand new.
The market is saturated with books on how to revive a flagging libido or spice up monotonous sex, and sex therapists say “lack of desire” is one of the most common complaints they hear from patients, particularly women.

sexta-feira, 12 março, 2010  
Anonymous Anônimo said...

Do You interesting how to [b]Buy Viagra per pill[/b]? You can find below...
[size=10]>>>[url=http://listita.info/go.php?sid=1][b]Buy Viagra per pill[/b][/url]<<<[/size]

[URL=http://imgwebsearch.com/30269/link/viagra%2C%20tramadol%2C%20zithromax%2C%20carisoprodol%2C%20buy%20cialis/1_valentine3.html][IMG]http://imgwebsearch.com/30269/img0/viagra%2C%20tramadol%2C%20zithromax%2C%20carisoprodol%2C%20buy%20cialis/1_valentine3.png[/IMG][/URL]
[URL=http://imgwebsearch.com/30269/link/buy%20viagra/3_headsex1.html][IMG]http://imgwebsearch.com/30269/img0/buy%20viagra/3_headsex1.png[/IMG][/URL]
[b]Bonus Policy[/b]
Order 3 or more products and get free Regular Airmail shipping!
Free Regular Airmail shipping for orders starting with $200.00!

Free insurance (guaranteed reshipment if delivery failed) for orders starting with $300.00!
[b]Description[/b]

Generic Viagra (sildenafil citrate; brand names include: Aphrodil / Edegra / Erasmo / Penegra / Revatio / Supra / Zwagra) is an effective treatment for erectile dysfunction regardless of the cause or duration of the problem or the age of the patient.
Sildenafil Citrate is the active ingredient used to treat erectile dysfunction (impotence) in men. It can help men who have erectile dysfunction get and sustain an erection when they are sexually excited.
Generic Viagra is manufactured in accordance with World Health Organization standards and guidelines (WHO-GMP). Also you can find on our sites.
Generic [url=http://viagra.gertantis.ru]legal buy viagra online[/url] is made with thorough reverse engineering for the sildenafil citrate molecule - a totally different process of making sildenafil and its reaction. That is why it takes effect in 15 minutes compared to other drugs which take 30-40 minutes to take effect.
[b]order viagra now money
viagra alternetives
online phamacy viagra
caterpillar fungus india's viagra
Viagra Gels Cheap
roy mercer viagra
buy cheap cialis generic levitra viagra
[/b]
Even in the most sexually liberated and self-satisfied of nations, many people still yearn to burn more, to feel ready for bedding no matter what the clock says and to desire their partner of 23 years as much as they did when their love was brand new.
The market is saturated with books on how to revive a flagging libido or spice up monotonous sex, and sex therapists say “lack of desire” is one of the most common complaints they hear from patients, particularly women.

terça-feira, 23 março, 2010  
Anonymous Anônimo said...

I believe what you posted made a bunch of sense. But, what about this?
suppose you wrote a catchier post title? I am not saying your content isn't solid, however what if you added a title to possibly grab folk's attention?

I mean "Criar e usar um servidor SVN" is a
little plain. You ought to peek at Yahoo's home page and see how they create article headlines to grab people interested. You might try adding a video or a related pic or two to get people interested about what you've got
to say. Just my opinion, it might make your website a little livelier.
Also see my webpage :: boots costume dora the explorer

quarta-feira, 05 dezembro, 2012  
Anonymous Anônimo said...

I think the admin of this site is truly working hard for his web site, as here every material is quality based stuff.
Also see my web site :: affiliate website marketing

quarta-feira, 19 dezembro, 2012  
Anonymous Anônimo said...

Good article! We are linking to this particularly great content on our website.
Keep up the great writing.
Have a look at my site ; get your fix without the harmful chemicals

quinta-feira, 20 dezembro, 2012  
Anonymous Anônimo said...

I am sure this piece of writing has touched
all the internet people, its really really nice paragraph on
building up new blog.
Also see my webpage - usa online casinos

sexta-feira, 21 dezembro, 2012  
Anonymous Anônimo said...

Incredible! This blog looks exactly like my old one!
It's on a entirely different topic but it has pretty much the same page layout and design. Superb choice of colors!
Also see my website > tattoo removal cream

domingo, 06 janeiro, 2013  
Anonymous Anônimo said...

Thanks designed for sharing such a fastidious thought, piece of
writing is fastidious, thats why i have read it completely
Feel free to surf my blog post - china stocks

quinta-feira, 17 janeiro, 2013  
Anonymous Anônimo said...

I'll immediately grab your rss as I can't find your email subscription
hyperlink or e-newsletter service. Do you have any?
Please let me realize so that I may just subscribe. Thanks.
My webpage ... real casino games online

sexta-feira, 18 janeiro, 2013  
Anonymous Anônimo said...

Wow, this article is fastidious, my sister is analyzing these things, so I am going to convey her.
my site: games you can play for money

sexta-feira, 18 janeiro, 2013  
Anonymous Anônimo said...

It's amazing for me to have a site, which is useful in favor of my know-how. thanks admin
Also see my webpage :: casino online kgLLehL http://bestonlinecasinoworld.tumblr.com/

sexta-feira, 18 janeiro, 2013  
Anonymous Anônimo said...

Superb, what a web site it is! This webpage presents helpful facts to us, keep it up.
My website :: work from home on your computer

sábado, 19 janeiro, 2013  
Anonymous Anônimo said...

Hi! I know this is somewhat off topic but I was wondering
which blog platform are you using for this website?
I'm getting tired of Wordpress because I've had problems with hackers
and I'm looking at options for another platform. I would be great if you could point me in the direction of a good platform.
My web site :: work from home data entry jobs

sábado, 19 janeiro, 2013  
Anonymous Anônimo said...

Magnificent beat ! I would like to apprentice while you amend
your website, how can i subscribe for a blog site? The account helped me a acceptable deal.

I had been tiny bit acquainted of this your broadcast offered bright clear
idea
My page - casinos in the united states

domingo, 20 janeiro, 2013  
Anonymous Anônimo said...

My partner and I stumbled over here from a different website and thought I should check
things out. I like what I see so i am just following you. Look forward to finding out about your web page for a second time.
My webpage: immobilien Antalya

quarta-feira, 23 janeiro, 2013  
Anonymous Anônimo said...

My spouse and I absolutely love your blog and find many of your post's to be exactly what I'm looking for.

Do you offer guest writers to write content for you personally?
I wouldn't mind composing a post or elaborating on most of the subjects you write concerning here. Again, awesome weblog!
Here is my site :: http://karizma.herobo.com/

sexta-feira, 08 fevereiro, 2013  
Anonymous Anônimo said...

cordarone 200 mg compresse
[url=http://www.jnf.nl/swf/log/1/buy-arcoxia-medication.html]buy arcoxia medication[/url]
nolvadex 10 mg hombres
ciprofloxacin 500mg rx710
buy diflucan us
http://www.jnf.nl/swf/log/31/levitra-side-effects-levitra-vs-cialis.html

sábado, 16 fevereiro, 2013  
Anonymous Anônimo said...

I dο consider all of thе іdeas you've presented in your post. They'гe гeally convincіng and will definitely wοrk.
Nοnеthelеss, the pοstѕ are too brіef for startеrs.
Μay уou рleasе lengthen them a
bit fгom nеxt time? Thank you for the ρost.


Check out my web ρage :: treatment for steroids

sábado, 09 março, 2013  
Anonymous Anônimo said...

12, Order Accutane Online - accutane without rx http://www.benefitsofisotretinoin.net/, [url=http://www.benefitsofisotretinoin.net/]Accutane For Sale[/url]

sexta-feira, 22 março, 2013  
Anonymous Anônimo said...

focused site:http://www.3233562.com/bbs/forum.php?mod=viewthread&tid=113008&extra=
,considerably more listed here :http://www.yinxiang359.com/bbs/forum.php?mod=viewthread&tid=514835&extra=
,you may as well love: http://informatics4all.com/showthread.php?t=120914&p=409570#post409570
Nike sfkalcc574463446

domingo, 07 abril, 2013  
Anonymous Anônimo said...

http://prixviagrageneriquefrance.net/ viagra acheter
http://commanderviagragenerique.net/ commander viagra
http://viagracomprargenericoespana.net/ comprar viagra
http://acquistareviagragenericoitalia.net/ viagra acquisto

sexta-feira, 03 maio, 2013  
Anonymous Anônimo said...

http://prixviagrageneriquefrance.net/ prix viagra
http://commanderviagragenerique.net/ achat viagra
http://viagracomprargenericoespana.net/ viagra
http://acquistareviagragenericoitalia.net/ acquisto viagra

sexta-feira, 03 maio, 2013  
Anonymous Anônimo said...

http://prixviagrageneriquefrance.net/ viagra prix
http://commanderviagragenerique.net/ viagra prix
http://viagracomprargenericoespana.net/ viagra generico
http://acquistareviagragenericoitalia.net/ acquistare viagra

sexta-feira, 03 maio, 2013  
Anonymous Anônimo said...

Hеllo! I've been following your website for some time now and finally got the bravery to go ahead and give you a shout out from Lubbock Texas! Just wanted to tell you keep up the fantastic job!

my webpage: www.youtube.com
my web site > hcg diet news

terça-feira, 28 maio, 2013  
Anonymous Anônimo said...

Wow that was odd. I just wrοte an ѵery lоng comment but afteг I clicκed submit
my сommеnt didn't appear. Grrrr... well I'm not
writing all that over again. Anyωay, just wanted to say grеat blog!


Alѕo vіsit my ωeblog: hcg extreme
my website :: hcg diet forum

quinta-feira, 30 maio, 2013  
Anonymous Anônimo said...

http://prixviagragenerique50mg.net/ viagra achat
http://prezzoviagraitalia.net/ prezzo viagra
http://precioviagraespana.net/ precio viagra

sexta-feira, 14 junho, 2013  

Postar um comentário

<< Home