Ferramentas de controle de versão e gerencia de projetos [Resolvido]

Boa noite a todos!

Não quero mais fazer códigos “amadores” e portanto acho que já é hora deu aprender a mecher com versionamento e gerencia de projetos. Estava lendo sobre subversion, CVS, Maven e parecem ser ferramentas muito boas!

Gostaria de opiniões sobre quais dessas ferramentas devo aprender, quais são mais usadas no mercado de trabalho, não conheço muito sobre isso por isso estou recorrendo a vocês!

Desde já muito obrigado!

O Subversion e Maven são bem utilizadas e conhecidas!
Eu trabalho com Subversion até hoje não me causou grandes problemas!

vlw

Quais delas são mais usadas no mercado de trabalho?

Como você já usa a Subversion a algum tempo poderia me falar um pouco dela? Quais as funções e coisas do tipo? Estou procurando o maximo de informações possíveis para aprender a mecher com tudo isso… alguma dica de por onde começar?

[quote=helders]Quais delas são mais usadas no mercado de trabalho?

Acredito que o Subversion é mais usado!
Como você já usa a Subversion a algum tempo poderia me falar um pouco dela? Quais as funções e coisas do tipo? Estou procurando o maximo de informações possíveis para aprender a mecher com tudo isso… alguma dica de por onde começar?[/quote]
Comece estudando cada um deles e comparando qual é melhor pra você!
No caso do Subversion você pode começar a instalando o Softwares necessários como o TortoiseSVN !

Meu colega de trabalho fez um artigo no blog dele quando puder dê uma olhada!!
http://delphitotal.blogspot.com/2010/02/instalacao-e-configuracao-do-servidor.html

vlw
abs

Existem outras ferramentas além dessas? Quais as principais hoje em dia?

oi,

PS: como vocês organizavam o fonte dos seus projetos antes sem controle de versão?

Onde eu trabalho nunca teve um controle sobre isso, e eu pretendo começar a mudar essa cultura.

Atualmente são 2 programadores e não há muita organização nesse sentido.

Quero começar a utilizar uma ferramenta de controle de versão, implantar MVC, esse tipo de coisa mas não tenho muita certeza de por onde começar… alguma dica?

E muito obrigado, o link realmente é excelente!

oi,

bom, um pouco sobre controle de versão

é criado num servidor um repositório, que irá armazenar os códigos fontes ( e o que mais você quiser ) dos seus projetos bem como as diferenças entre as versões
cada desenvolvedor irá ter uma cópia local deste código onde ele irá trabalhar
esta cópia local é sincronizada sempre que necessário com o servidor, desta forma muitos desenvolvedores podem trabalhar ao mesmo tempo em arquivos diferentes ou até no mesmo arquivo

basicamente (na minha opinião) um controle de versão tem duas funções então no desenvolvimento do sistema

  1. você tem acesso a todas as versões do software sendo que você pode recuperar a qualquer momento uma versão estável ou então customizada para um determinado cliente ou produto
  2. vários desenvolvedores podem trabalhar ao mesmo tempo em um mesmo código sendo que neste caso o CV (controle de versão) irá proporcionar funcionalidades para este controle (tem a ver com os conceitos que eu falei de repositório, cópia local, etc)

existem alguns conceitos que são mais ou menos padrões entre os CV

import - irá submeter inicialmente o projeto para controle do repositório
update - atualiza o arquivo (ou arquivos) da cópia local com a última versão do repositório
commit - sobe (atualiza) as alterações da cópia local para o repositório
checkout - baixa (recupera) um projeto do repositório para uma cópia local afim de ser trabalhado pelo desenvolvedor

uma outra funcionalidade interessante de um CV é o gerenciamento dos conflitos, isto é, mais de uma pessoa modificou o mesmo trecho de uma classe por exemplo, na hora de fazer o commit destas alteralções para o respositório eu tenho um conflito, pois o CV nao tem como descobrir qual a versão deve ser comitada

neste caso CV diferentes gerenciam confiltos de forma diferente

abs

Agora sim as coisas estão mais claras :smiley:

Obrigado mesmo André, era isso que eu estava precisando, vlw UMC, ajudou bastante também :slight_smile:

[quote=helders]Agora sim as coisas estão mais claras :smiley:

Obrigado mesmo André, era isso que eu estava precisando, vlw UMC, ajudou bastante também :)[/quote]
Isso ae!
Qual você vai usar?

vlw

E ai cara

Depois d vc passar algum tempo olhando como os versionadores centralizados funcionam (cvs e subversion), talvez vc queira dar uma olhada nos distribuídos, q são bem mais práticos. Git é um bom exemplo, se for usar em eclipse, tem o egit. Se for para netbeans, tem o nbgit.

Jogar pedra em gato morto, porque subversion não presta
Micro tutorial de git
Github colaborativo

Eu dei uma lida neles e acho que vou usar o Subversion mesmo, já baixei o TortoiseSVN e agora estou tentando configurar ele com o NetBeans.

Neste processo surgiu outra duvida, o Maven é uma ferramenta que complementa um controle de versao ou é um concorrente dele?

Eh Barenko, um colega me falou sobre o GIT, mas não sei porque ele seria mais prático, não é melhor tem um servidor com as versões ao invez de cada um ter o seu rodando em sua máquina? Não consegui ver as vantagens desse tipo de sistema.

Para distribuído com netbeans uso o Mercurial. Nunca tive problemas com ele e tem integração direta com o netbeans. é só baixar o tortoisehg no site http://mercurial.selenic.com/downloads/ e pronto… basta clicar com o botão direito do mouse no seu projeto dentro do netbeans e abrir um novo projeto com o mercurial.

Bom barenko,

Aquele video do Linus que está num post no link da sua assinatura realmente ajuda a entender as vantagens de um sistema distribuido… estou começando a mudar de idéia e usar o nbGit

Eu uso o git p/ projetos pessoais e acho muito melhor… na empresa ainda sou obrigado a usar o CVS e o pessoal lá vive com problema de merge e outros, simplesmente pq não querem perder o histórico de alterações ou mudar os procedimentos… enfim, burocracia

Se vc vai começar algo novo, então q comece pelo melhor :wink:

Já instalei o nbGit no netbeans, só não compreendi uma coisa, eu preciso ter um servidor rodando o GIT (aquele que baixa no site oficial)? Estava tentando com um colega e ele conseguiu instalar o GIT mas rodando só na maquina dele. A idéia é fazer com que 2 computadores compartilhem os mesmos projetos Git. Eu vou rodar no netbeans, ele eu já nao sei como vai fazer… você tem algum tutorial ou algo assim?

Vc pode tentar o gitosis (um servidor git bem simples)

http://barenko.wordpress.com/2010/02/06/instalacao-do-gitosis-no-linux/