Ir para o conteúdo
PsySc0rpi0n

BitBucket-Git

Mensagens Recomendadas

PsySc0rpi0n

Boas...

Estou a pensar em criar uma conta neste site para poder, juntamente com mais um colega de curso, fazer/terminar um programa que é o projecto de uma das cadeiras que temos no curso.

No entanto estou com dificuldades em conseguir entender algumas das funcionalidades do site. Já estive de volta da Wiki mas não me tirou algumas dúvidas.

No meu caso, pretendo poder ter o nosso code online de forma a que eu e o meu colega o possamos alterar.

As minhas dúvidas são principalmente relacionadas com a conta a criar, repos, Teams e etc.

Por exemplo:

Para fazer o que pretendo, colocar o code disponível para o acabarmos, preciso de quê? 2 contas no bitbucket, uma para mim e outra para o meu colega? Ou apenas de uma?

Depois a conta que crio, caso seja apenas necessária uma, o login terá que ser um que ambos possamos usar? Ou como é?

Depois ainda não percebi bem o que são os branches nem os forks. Nem percebo bem porque tem que haver o commit e depois o pull.

O commit tem que ser um file de cada vez? E o pull também ou como é? Podemos fazer, por exemplo, o conteúdo de uma pasta inteira?


Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
eatg75

Ora viva! Vamos comecar pelo comeco, um repositorio e um conjunto de ficheiros (ficheiros no sentido do unix) sobre um sistema de versoes, i.e. um conjunto de ficheiros cujo conteudo vai-se alterando incrementalmente ao longo do tempo. Uma revisao ou changeset e um conjunto de alteracoes no repositorio, nomeadamente : criacao de novos ficheiros, remocao de ficheiros, adicao/remocao/alteracao de linhas aos ficheiros, alterao de propriedades de ficheiros. Um commit e um registo/envio de um conjunto de mudancas para o servidor com um repositorio (em caso de um sistema versao centralizado) ou localmente (em caso de um sistema de versao distribuido), atencao que um commit e atomico (nao e divisivel), um commit ou e registrado completamente ou nao, i.e. ela nao pode ser feita por partes (nao podes registrar apenas metade de um commit, etc).

Em relacao ao Bitbucket na minha opiniao e o melhor servico de hospedagem de codigo que existe eles permitem a criacao de um numero ilimitado de repositorios tanto privados como publico com ate 5 colaboradores na versao gratis.

Em relacao as contas podem ter uma unica conta e utilizarem-na voces os dois, mas para isso cada um de voces tem de gerar uma chave ssh e adicionar ao repositorio, convem cada um de voces terem uma conta cada, e um cria o repositorio e convida o outro a colaboradar.

Os branches sao um linha idenpendente de desenvolvimento, i.e. suponhamos que no vosso projeto estao a trabalhar num jogo e estao a chegar a altura de lancar um beta criam uma branch podem da-la o nome de foo-game-beta e disponibilizarem o ficheiro binario aos utilizadores a partir do codigo do branch e assim como os utilizadores vao providenciando registro de bugs vao alterar aquele branch e corrigir os bugs enquanto continuavan a trabalhar na linha principal (master, tip, head, etc... ou whatever) e depois reintegram o codigo para a linha de principal de desenvolvimento. Suponhamos que o jogo que estao a criar estao utilizar a api grafica de um widget toolkit para desenharem os elementos do jogo, mas um elemento novo juntou-se a equipa e tem conhecimentos do opengl e quis portar o jogo para utilizar o opengl ao invez da api grafica do widget toolkit ele cria uma nova branch onde ele fara o port para o opengl. As branches podem conter codigo de funcionalidades que sejam expirementais ou ligados a uma release.

Um fork e uma copia do repositorio como um todo, suponhamos que encontraste um projeto sob uma licenca livre e gostaste e queres contribuir, fazes um fork daquele projeto para o teu computador de forma a contribuir, um fork e essencialmente uma copia de um repositorio ja existente. Considerando o mesmo exemplo anterior, suponhamos que alteraste parte do codigo e queres submeter o codigo ao repositorio original podes criar um patch manualmente e enviar ao autor original do projeto de forma a ele efetuar o merge em caso de ele aceitar, ou podes mandar uma mensagem a ele a notificar as mudancas que fizeste acompanhado de um url da tua copia pessoal do repositorio e ele faz o pull que vai buscas todas alteracoes que fizeste para a copia dele e ele depois fara o merge.

Um commit e um registro de uma alteracao ou um conjunto de alteracoes no repositorio, podes alterar 10 ficheiros faz que quiseres podes fazer o commit da alteracao de apenas 1, 2, ..., ou todos.

Pelas perguntas que fizeste indica-me que nunca tiveste contacto com sistemas de versoes anteriormente, eu pessolamente prefiro o mercurial ou invez do git, pois considero-o superior ao git, e recomendaria-te o mercurial e a leres o livro Mercurial The Definitive Guide encontras na pagina do autor uma versao online do livro, o livro e muito bom.


Victarion seized the dusky woman by the wrist and pulled her to him.

Victarion - She will do it. Go pray to your red god. Light your fire, and tell me what you see.

Moqorro's dark eyes seemed to shine.

Moqorro - I see dragons.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
PsySc0rpi0n

Obrigado pela explicação...

Já deu para confirmar algumas das minhas suspeitas...

Vou tentar resumir o que entendi por uma linguagem mais simples a ver se entendi tudo bem...

Em relação à organização posso pensar da seguinte forma?????

- Ora eu crio uma conta com um nick ao meu gosto. Depois crio um repositório com o nome, neste caso do jogo, certo?

Agora faço uma pergunta:

Um repositório pode conter, por exemplo, vários projectos, cada um separado do seguinte (tipo várias pastas)? Ou cada repositório apenas pode/convém conter apenas um projecto?

Quanto aos branches, não sei se percebi bem porque usaste vários termos cujos significados ainda não estou muito familiarizado, mas posso pensar nos branches como por exemplo, se num projecto eu tiver necessidade de o separar em 3 ou 4 partes, posso criar 3 ou 4 branches e dividir, por cada branch, uma série de ficheiros específicos?

Sei lá, se por exemplo estiver a desenvolver um grande jogo e estiver a pensar em que numa primeira fase o jogo apenas vai suportar jogador vs jogador e numa próxima versão já suportar jogador vs computador, posso criar 2 branchs, e dar-lhe nomes por exemplo v.1 e v.2 e tudo o que quiser desenvolver para o jogo apenas com suporte para jogador vs jogador vai para v.1 e quando começar a desenvolver a v.2 do jogo então guardo todos os files no branch v.2???

Será algo assim esta questão dos branchs???


Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
eatg75

Nao convem ter muitos projetos diferentes num mesmo repositorio, mas e possivel! Consegue-se isso atraves de sub-modules, suponhamos tu estas utilizar bibliotecas externas (i.e. desenvlovida por pessoas nao ligadas ao teu projeto) e com disenvolvimento ativo e queres sempre ter a ulitma versao dessa biblioteca no teu repositorio como uma dependencia, para isso referencias aquela biblioteca como um sub-module.

Em relacao aos branches, todo o desenvolvimento deve ocorrer na branch principal (master ou default, para o git e mercurial respetivamente), e aconselhavel criar um branch se as funcionalidades que estas a pensar em implementar possam distabilizar a branch principal. Mas podes criar uma branch por cada nova funcionalidade que estas a desesvolver, eu nao aconselharia esta abordagem. E um commit so vale a pena fazer se as funcionalidades que implementaste ou alteracoes que fizeste nao fazem o programa crashar, logo podes aceitar este conselho "So fazes o commit se as alteracoes feitas estiverem bem testadas".


Victarion seized the dusky woman by the wrist and pulled her to him.

Victarion - She will do it. Go pray to your red god. Light your fire, and tell me what you see.

Moqorro's dark eyes seemed to shine.

Moqorro - I see dragons.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.