Jump to content
Hugao

TFS, GitHub ou outros

Recommended Posts

Hugao

Boas.

Com a minha ida para um CET eu pensei em organizar melhor os meus projetos e ter os mesmos sincronizados com o meu PC e com o de casa.

Eu ando a ver serviços como o Team Foundation Service e o GitHub mas ando em duvida em qual usar.

Já usei ambos mas o GitHub nem foi muito por causa de apenas ter um projeto privado.

Eu uso o Visual Studio mas queria um serviço que fosse compatível com várias ferramentas de desenvolvimento e que tivesse a possibilidade de ter vários projetos privados.

Qual é o source code management que recomendam?

Obrigado

Edited by Hugao

Share this post


Link to post
Share on other sites
Flinger

Eu uso o SVN. Não é novo, mas tem feito o serviço.

Tens pluggins para quase todas as IDE's, para o VS existe o ankhsvn, e para operações mais complexas tens o tortoise (integra no explorer).

Se não estou em erro, o servidor, vem de raiz com o Linux, mas para Windows uso o VisualSVN. Bastante simples de usar, e gratuito, sendo que a única desvantagem da versão gratuita é não permitir administração remota, e para operações mais complexas teres de usar a linha de comandos (importação e exportação de repositórios/branches). Mas dá para o gasto. Também tens vários serviços online, incluindo o googlecode, embore ache que o repositório fica público.

O pessoal que tenha mais experiência pode comparar com outros.

Share this post


Link to post
Share on other sites
Warrior

Tanto git como svn são boas opções.

Se procuras um repositório SVN gratuito podes experimentar o assembla, já o usei para vários projectos e é bastante simples de configurar.

Share this post


Link to post
Share on other sites
pikax

eu uso o mercurial, para fazer merge e' um mimo :)


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
Hugao

Eu uso o SVN. Não é novo, mas tem feito o serviço.

Tens pluggins para quase todas as IDE's, para o VS existe o ankhsvn, e para operações mais complexas tens o tortoise (integra no explorer).

Se não estou em erro, o servidor, vem de raiz com o Linux, mas para Windows uso o VisualSVN. Bastante simples de usar, e gratuito, sendo que a única desvantagem da versão gratuita é não permitir administração remota, e para operações mais complexas teres de usar a linha de comandos (importação e exportação de repositórios/branches). Mas dá para o gasto. Também tens vários serviços online, incluindo o googlecode, embore ache que o repositório fica público.

O pessoal que tenha mais experiência pode comparar com outros.

Eu no sourceforge tenho usado o SVN para meter o código do projeto na página do mesmo. Uso o tortoise

Tanto git como svn são boas opções.

Se procuras um repositório SVN gratuito podes experimentar o assembla, já o usei para vários projectos e é bastante simples de configurar.

Pelo que eu percebi no site o assembla não tem restrições a nível de users num projeto. É mesmo assim?

E a nível de repos privados como é o assembla?

O bitbucket usa git e permite-te ter vários repos privados.

Eu ontem andei a ver sobre o Bitbucket e pareceu-me uma boa opção

Share this post


Link to post
Share on other sites
Flinger

Também fiquei curioso, e resolvi fazer uma rápida reciclagem do que por aí anda.

O Assembla parece-me mais limitativo no que toca a projectos, já que apenas te permite 1 projecto privado e 3 utilizadores (gratuito). Depois tens os públicos, onde também não vi restrições.

O bitbucket parece-me engraçado, e, para uso pessoal, não desgostei das funcionalidades do Git. Tenho por aqui um par de projectos em ideia, se avançar com eles sou capaz de experimentar este serviço. Já fiquei com mais algumas dúvidas no uso do Git para uso empresarial (pelo menos na minha empresa :D ), pois parece-me um bocado sujeito à asneira dos utilizadores. Por outro lado, ter uma cópia em cada PC, parece-me um mecanismo de backup fantástico :D .

Eu no sourceforge tenho usado o SVN para meter o código do projeto na página do mesmo. Uso o tortoise

O tortoise é uma ferramenta fantástica, mas se tiver o projecto inteiro no servidor (incluindo os ficheiros de projecto), gosto mais de usar os plugins para as IDE's. Acho mais prático, até porque não me carrega logo à cabeça ficheiros desnecessários. Dito isto, o editor de diferenças do Mylyn para o Eclipse é uma bela borrada (pelo menos na versão que eu uso), por isso complemento sempre com o tortoise.

Share this post


Link to post
Share on other sites
Rui Carlos

Pessoalmente passei do SVN para o Mercurial, e depois para o Git.

Hoje em dia o SVN não é uma opção que considere quando sou eu a escolher a ferramenta. Para as necessidades que tenho, o Mercurial é mais simples, e mais funcional.

O Git já me parece um pouco mais complexo, mas acabei por começar a usá-lo pela facilidade em alterar o histórico. O Git também me pareceu melhor ao nível de branch/merge (uso mais os branches com o Git, mas por vezes até me pergunto se a trabalho de gerir os branches realmente compensa).

No geral diria que quer o Git, quer o Mercurial são boas opções.

Relativamente a repositórios online, o Assembla parece-me um pouco limitado em termos de projectos privados. Acho o Bitbucket melhor opção.

Também tens a opção de colocares os repositórios numa máquina tua. Usando um sistema como o Git ou Mercurial, é muito fácil mais tarde colocares o repositório num outro local.

Share this post


Link to post
Share on other sites
Hugao

Também fiquei curioso, e resolvi fazer uma rápida reciclagem do que por aí anda.

O Assembla parece-me mais limitativo no que toca a projectos, já que apenas te permite 1 projecto privado e 3 utilizadores (gratuito). Depois tens os públicos, onde também não vi restrições.

O bitbucket parece-me engraçado, e, para uso pessoal, não desgostei das funcionalidades do Git. Tenho por aqui um par de projectos em ideia, se avançar com eles sou capaz de experimentar este serviço. Já fiquei com mais algumas dúvidas no uso do Git para uso empresarial (pelo menos na minha empresa :D ), pois parece-me um bocado sujeito à asneira dos utilizadores. Por outro lado, ter uma cópia em cada PC, parece-me um mecanismo de backup fantástico :D .

Eu também achei o Assembla mais limitado nos projetos privado que é o que me interessa mais.

Eu já usei o git no Team Foundation Service para experimentar e até gostei, mas não explorei muito

O tortoise é uma ferramenta fantástica, mas se tiver o projecto inteiro no servidor (incluindo os ficheiros de projecto), gosto mais de usar os plugins para as IDE's. Acho mais prático, até porque não me carrega logo à cabeça ficheiros desnecessários. Dito isto, o editor de diferenças do Mylyn para o Eclipse é uma bela borrada (pelo menos na versão que eu uso), por isso complemento sempre com o tortoise.

Na altura usei o SVN porque foi aquele com que entendi :P e o tortoise chegava porque era só para meter o código fonte na página dos projetos.

Pessoalmente passei do SVN para o Mercurial, e depois para o Git.

Hoje em dia o SVN não é uma opção que considere quando sou eu a escolher a ferramenta. Para as necessidades que tenho, o Mercurial é mais simples, e mais funcional.

O Git já me parece um pouco mais complexo, mas acabei por começar a usá-lo pela facilidade em alterar o histórico. O Git também me pareceu melhor ao nível de branch/merge (uso mais os branches com o Git, mas por vezes até me pergunto se a trabalho de gerir os branches realmente compensa).

No geral diria que quer o Git, quer o Mercurial são boas opções.

O Mercurial nunca usei. Os únicos que usei foi o SVN, git e TFS (os últimos só para experimentar) por isso não posso dizer muito sobre o Mercurial.

Quanto ao git quando o experimentei até que me cativou.

Relativamente a repositórios online, o Assembla parece-me um pouco limitado em termos de projectos privados. Acho o Bitbucket melhor opção.

Também tens a opção de colocares os repositórios numa máquina tua. Usando um sistema como o Git ou Mercurial, é muito fácil mais tarde colocares o repositório num outro local.

Também concordo com a tua opinião, para projetos privados o Bitbucket é melhor.

Eu sei mas eu quero online porque eu sou de Viseu mas estou a estudar em Lisboa e o PC de casa é o da família pelo que não convém muito ter um sistema desses a correr :s

Share this post


Link to post
Share on other sites
Hugao

Olhem desculpem a pergunta um bocado estúpida mas veio-me esta dúvida. O Git é um repositório local, isso quer dizer que por exemplo eu tenho o código fonte no PC1 e para o PC2 obter o código o PC1 tem de estar ligado?

Eu fiquei na dúvida por causa do "local"

Share this post


Link to post
Share on other sites
Rui Carlos

Olhem desculpem a pergunta um bocado estúpida mas veio-me esta dúvida. O Git é um repositório local, isso quer dizer que por exemplo eu tenho o código fonte no PC1 e para o PC2 obter o código o PC1 tem de estar ligado?

Eu fiquei na dúvida por causa do "local"

O Git não é local, é distribuído. Pode estar ao mesmo tempo em várias máquinas (incluindo nas tuas máquinas "locais"). Regra geral, copias o repositório do PC1 para um servidor (e.g. github), e depois copias o repositório do servidor para o PC2. Mas também podes copiar do PC1 para o PC2, e obviamente que nesse caso o PC1 tem que estar ligado.

  • Vote 1

Share this post


Link to post
Share on other sites
Hugao

O Git não é local, é distribuído. Pode estar ao mesmo tempo em várias máquinas (incluindo nas tuas máquinas "locais"). Regra geral, copias o repositório do PC1 para um servidor (e.g. github), e depois copias o repositório do servidor para o PC2. Mas também podes copiar do PC1 para o PC2, e obviamente que nesse caso o PC1 tem que estar ligado.

Obrigado pelo esclarecimento ;)

Share this post


Link to post
Share on other sites
Virneto

Normalmente tens um repositório central...

(...)

(...)

...com o branch de desenvolvimento.

Muito bom este flash.

Referes aí vários aspetos/possibilidades do desenvolvimento de projetos em equipa que eu desconhecia!

Cheers :thumbsup:

Edited by Virneto

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
Hugao

Normalmente tens um repositório central (normalmente denominado de origin).

(...)

Para agilizar o desenvolvimento em equipa, é boa prática sejam feitos merges frequentes de funcionalidades (features) completas com o branch de desenvolvimento.

Muito obrigado pela informação :) por acaso ia perguntar como o funcionam os commit e os branch :P

Então deixa ver ser percebi. O código-fonte está no repo central e conforme a minha equipa vai fazendo alterações podemos integrar essas alterações no repo central com o push e receber as alterações dos outros membros com o pull.

Os branch são tipo categorias ao longo do desenvolvimento do projeto e podem ser juntos uns aos outros.

Mas eu ainda estou um bocado na dúvida na questão do ramo central (é o código-fonte principal??) e na questão do merge

Share this post


Link to post
Share on other sites
KTachyon

No Git não existe o conceito de ramo principal. Todos os ramos são principais até o seu estado final ser fundido (merged) com outro ramo e esquecido. Mas podes sempre voltar a pegar nesse ramo e fazer mais alterações.

Podes mesmo criar um ramo do estado de um projecto que diverge do projecto inicial, tornando-se num outro projecto que tem por base um estado desse projecto inicial. Esse ramo pode ter sido colocado num clone do projecto inicial e que acaba por se tornar numa origin para outro projecto.

Edited by KTachyon
  • Vote 1

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
Hugao

No Git não existe o conceito de ramo principal. Todos os ramos são principais até o seu estado final ser fundido (merged) com outro ramo e esquecido. Mas podes sempre voltar a pegar nesse ramo e fazer mais alterações.

Podes mesmo criar um ramo do estado de um projecto que diverge do projecto inicial, tornando-se num outro projecto que tem por base um estado desse projecto inicial. Esse ramo pode ter sido colocado num clone do projecto inicial e que acaba por se tornar numa origin para outro projecto.

Acho que já percebi :P obrigadão :cheesygrin:

E obrigado a todo aqueles que me ajudaram ;)

Edited by Hugao

Share this post


Link to post
Share on other sites
Hugao

Bem já me estou a entender com isto ;) mas só tenho aqui uma dúvida. Eu quando crio o repo e quando faço o commit ele cria o branch master, mas eu inicialmente cria ter dois branch, o stable e o dev.

Como é que eu faço para quando fizer o primeiro commit ele enviar para o branch dev?

Nota: Eu criei os branch pelo site do bitbucket

Share this post


Link to post
Share on other sites
KTachyon

Tens que fazer checkout do dev. Aquilo que te pode acontecer mais para a frente é, ao tentares mudar para outro branch o git avisa-te que não pode mudar de branch porque os teus ficheiros alterados iriam ser substituídos. Se queres ter a certeza que não acontece nada às alterações ao fazeres um checkout de um branch, mandas o git fazer stash aos ficheiros, fazes o checkout e depois fazes um pop à stash.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
Hugao

Tens que fazer checkout do dev. Aquilo que te pode acontecer mais para a frente é, ao tentares mudar para outro branch o git avisa-te que não pode mudar de branch porque os teus ficheiros alterados iriam ser substituídos. Se queres ter a certeza que não acontece nada às alterações ao fazeres um checkout de um branch, mandas o git fazer stash aos ficheiros, fazes o checkout e depois fazes um pop à stash.

Podes dar um exemplo? (a)

Share this post


Link to post
Share on other sites
KTachyon

Na dúvida deves sempre fazer stash quando estás a mudar de branch. Na linha de comandos:

git stash
# fazes o checkout
git  stash pop


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
Virneto

Desculpem lá, apeteceu-me vir fazer este update:

Fiz algumas pesquisas com base na informação que deixaram aqui, e então...

SignUp no Bitbucket, 'yum install mercurial' no terminal.

Criei o Repositório.

Carreguei o projeto que tenho vindo a desenvolver em conjunto com um colega.

Enviei-lhe o convite e dei-lhe as permissões necessárias.

Versão 1.0 em andamento com lista de tarefas nos Issues, prazos, requisitos e responsável especificado...

ESPETACULAR!!!

Eu desconhecia por completo este recurso!!

Está fenomenal mesmo!! :thumbsup:

Agradeço a todos os que explicaram/partilharam!

  • Vote 2

"Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Linuxando.com | ...

Share this post


Link to post
Share on other sites
pikax
SignUp no Bitbucket, 'yum install mercurial' no terminal.

Mercurial FTW :D


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.