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!
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 !
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?
é 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
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
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
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.
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.
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
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?