Separar projeto no SVN entre desenvolvimento e produção

Olá, pessoal.

Estou começando a usar o SVN e gostaria de saber: como posso dividir meu projeto em versão desenvolvimento e produção?

Antes a gente utilizava o vss e tinha dois projetos separados, um para desenvolvimento e produção.

Obrigado!

vc deixa o HEAD para produção
e cria branches para desenvolviemtno, normalmente se cria um branche para desenvolvimento, e depois de tudo certo faz o merge do branch no head para mandar pra produção.

[quote=Felagund]vc deixa o HEAD para produção
e cria branches para desenvolviemtno, normalmente se cria um branche para desenvolvimento, e depois de tudo certo faz o merge do branch no head para mandar pra produção.[/quote]

Vi algo assim no google, mas não sei como criar isso no SVN. Como faço pra criar o Head?

O HEAD no svn é chamado de TRUNK o/

Segue um link bacana:
http://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html

[quote=v1c70r_f]O HEAD no svn é chamado de TRUNK o/

Segue um link bacana:
http://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html[/quote]

Esse Head, trunk e afins, nada mais são do que pastas?

_o/

Isso, fisicamente são separados em pastas.

Os nomes ‘TRUNK’/‘HEAD’ e branchs são conceituais, para separar o projeto principal dos seus forks.

[quote=andre_guitar7][quote=v1c70r_f]O HEAD no svn é chamado de TRUNK o/

Segue um link bacana:
http://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html[/quote]

Esse Head, trunk e afins, nada mais são do que pastas?[/quote]

Não são apenas pastas. Você tem que criar um branch no SVN usando o comando copy. Se você reparar bem, debaixo do diretório raiz do seu projeto há dois diretórios: trunk e branches. O diretório trunk contém o branch principal (o “tronco da árvore”). O diretório branches vai conter os “galhos”.

Se você fizer um


$ svn copy http://svn.example.com/repos/calc/trunk \
           http://svn.example.com/repos/calc/branches/my-calc-branch \
      -m "Creating a private branch of /calc/trunk."

vai criar um novo branch.

Afinal, qual é a vantagem de fazer branch?

Imagine que você está com o seu projeto em produção.

Aí você está cheio de chamados e novas funcionalidades para implementar, cada um com datas diferentes de liberação, como você conseguirá garantir que apenas o que deve ser implantado na data determinada está no seu código a ser liberado?

Imagina então que você tem um ambiente de testes, desenvolvimento, homologação e produção. O fonte do projeto de produção(no trunk) com certeza será diferente do fonte em desenvolvimento(em alguma branch).

Isso apenas um cenário, existem várias possibilidades que o uso de branch se faz necessário, isso depende da sua necessidade.

USE BRANCHS QUANDO NECESSÁRIO, imagine um projeto do zero, inicialmente todos podem desenvolver utilizando apenas o trunk normalmente.

Isso é bem controverso. Tem gente que odeia branches e outros que acham importante. O melhor para mim é evitar o branching, se possível, mas usar, se for essencial.

Um caso de uso de branching é você ter que corrigir bugs em uma versão do sistema enquanto desenvolve a próxima versão. Se você tiver um branch para a ultima versão estável e outro para a versão em desenvolvimento fica fácil trabalhar em ambas ao mesmo tempo, sem que as correções realizadas em uma versão interfiram na outra em desenvolvimento.

Isso é bem controverso. Tem gente que odeia branches e outros que acham importante. O melhor para mim é evitar o branching, se possível, mas usar, se for essencial.

Um caso de uso de branching é você ter que corrigir bugs em uma versão do sistema enquanto desenvolve a próxima versão. Se você tiver um branch para a ultima versão estável e outro para a versão em desenvolvimento fica fácil trabalhar em ambas ao mesmo tempo, sem que as correções realizadas em uma versão interfiram na outra em desenvolvimento.[/quote]

A única coisa que preciso é administrar um código de desenvolvimento e um de produção. Como posso fazer pra replicar meu código de desenvolvimento para produção?

Leia o post anterior sobre o comando copy.

Ok, mas um branch e um comando copy não são a mesma coisa, certo?

Ok, mas um branch e um comando copy não são a mesma coisa, certo?[/quote]

É como se cria um branch no svn. Qualquer dúvida, leia o manual.

Acho que vou fazer o seguinte então, vou criar duas pastas, sendo uma de desenvolvimento e outra de produção. Quando algo estiver ok em desenvolvimento, faço um merge pra produção. Não vejo forma mais prática que isso.

André, mas o que tem de pouco prático em fazer “svn copy a b” ?

Não estou dizendo que não é prático, acho que é justamente o que vou fazer. Quando estiver ok em desenvolvimento faço uma cópia para produção.