diff --git a/cap05.Rmd b/cap05.Rmd index fa3475dab078fdffd003bae1b67ee449f76bc89f..69bec534b64b49ef6f214da76f1bb9c84d1c3949 100644 --- a/cap05.Rmd +++ b/cap05.Rmd @@ -152,21 +152,53 @@ alguns repositórios privados com a conta *free*.  -http://slides.com/axil/what-is-gitlab#/ -https://en.wikipedia.org/wiki/GitLab -https://about.gitlab.com/2015/05/18/simple-words-for-a-gitlab-newbie/ -https://about.gitlab.com/better-than-github/ -https://www.upwork.com/hiring/development/gitlab-vs-github-how-are-they-different/ -https://git-scm.com/book/en/v2/Git-on-the-Server-GitLab -https://www.safaribooksonline.com/library/view/gitlab-repository-management/9781783281794/pr05.html -http://info.eps.surrey.ac.uk/IT/FAQ/gitlab-faq.php -https://books.google.com.br/books?id=tUYiAgAAQBAJ&source=gbs_navlinks_s -http://events.linuxfoundation.org/sites/events/files/slides/gitlab-linuxcon-presentation.pdf - -Pode ser instalado em servidores propríos. Talvez seja o único nessa -categoria. - -Mascot é raccoon: guaxinim +FIGURA O guaxinim (*raccoon* em inglês) é o macote do GitLab. + +Assim como o GitHub, o [GitLab] é um serviço Web para repositórios +Git. O GitLab é um projeto *open source* desenvolvido em Ruby que deu +início em 2011 pelo Ucrâniano Dmitriy Zaporozhets. Em 2013, a Companhia +GitLab tinha 11 membros e mais de 10 mil organizações. + +O GitLab, além de ser um serviço gratuíto (com planos extras) +colaboração, é também um programa que você pode instalar em servidor +local para ter seus repositórios na intraweb, se for o caso. + +Como serviço web, o GitLab oferece basicamente todos os recursos do +GitHub e do BitBucket [^1]. No entanto, com uma conta gratuíta no +<http://gitlab.com> você pode ter, além dos repositórios públicos e +colaboradores, ilimitados repositórios privados sem pagar por nada. Isso +faz do GitLab.com o lugar certo para pequenas equipes com pouco recurso +ou que desenvolvem trabalhos sem fins lucrativos, como é o caso de +colaboração em código para análise de dados para publicação científica. + +Atualmente existem mais de 69 mil projetos públicos e 5840 grupos +abertos no GitLab.com (https://gitlab.com/explore) + +A versão paga do GitLab, a *Enterprise Edition* (EE), tem um preço +muitas vezes menor que a equivalente do GitHub. + +A versão gratuíta do GitLab para servidores, a *Community Edition* (CE), +pode ser instalada em servidores Linux, Windows, máquinas vituais e +servidores na núvem, além de outras opções. Os serviços +<https://gitlab.c3sl.ufpr.br/explore> e <http://git.leg.ufpr.br/explore> +são o GitLab CE para servidores rodando no C3SL (Centro de Computação +Científica e Software Livre) e LEG (Laboratório de Estatística e +Geoinformação). Estes serviços dão suporte à colaboração em código +dentro dos departamentos de Informática e Estatística para alunos e +professores (C3SL) e para a equipe e colaboradores do LEG (LEG). + +Em termos finaceiros, vale mais a pena pagar por um servidor na núvem da +[Digital Ocean] com o GitLab CE (U$ 5/mês) do que ter uma conta para +repositórios privados no GitHub (U$ 7/mes por 5 repositórios +privados). No entanto, conforme já mencionamos, pequenas equipes podem +ter repositórios privados na conta gratuíta do GitLab.com. + +Além das características essenciais ou comuns aos demais serviços, como +*issues*, *fork*, *merge requests*, *wiki* e *snippets*, o +GitLab tem repositórios com 5 níveis de acesso (*owner*, *master*, +*developer*, *report* e *guess*); revisão comentada de código nos +*diffs*; permite importar repositórios de outros serviços; permite +adição de *web hooks*. ### Outros ### @@ -187,6 +219,12 @@ Ao preencher o formulário de criação de conta, você receberá um email com uma ulr de ativação. Se optar por planos pagos, terá informar número do cartão de crédito para que seja feito o pagamento mensalmente. +Para criar uma conta gratuíta no GitLab, acesse +<https://gitlab.com/users/sign_in>. Os serviços GitLab que usamos são +instalações em servidoras próprias (do C3SL e do LEG), no entanto, a +interface do usuário é a mesma, com excessão de alguns privilégios +administrativos. + ### Habilitar comunição ### http://www.vogella.com/tutorials/GitHosting/article.html @@ -242,8 +280,26 @@ ssh -T git@github.com ssh -vT git@github.com ``` +No GitLab, o cadastro de chaves públicas é um processo semelhante. Uma +vez autenticado, acesse <https://gitlab.c3sl.ufpr.br/profile/keys> para +adicionar chaves públicas. Para testar a comunição entre o GitHub e a +sua máquina, execute: +```{sh} +## Testa comunição. Retorna um "Welcome!" em caso positivo. +ssh -T git@gitlab.c3sl.ufpr.br + +## Se falhar, habilite o modo verbose para rastrear o erro. +ssh -vT git@gitlab.c3sl.ufpr.br +``` + +Lembre-se de que o endereço `gitlab.c3sl.ufpr.br` corresponde ao serviço +GitLab disponibilidade pelo C3SL. Caso você esteja fazendo a conta no +GitLab.com, o endereço muda de acordo. + ### Gerenciar repositórios ### +**GitHub** + A comunicação com o GitHub acabou de ser estabelecida. Agora podemos criar repositórios e começar a mostrar nosso trabalho para o mundo e colaborar de forma eficiente. @@ -388,7 +444,42 @@ projetos. Além disso, é o que os alunos usam para fazerem seus trabalhos e desenvolverem o TCC. O uso do Git como ferramenta de trabalho passou ser estimulado nesse semestre (2015/2). -Basicamente, o GitLab tem os mesmos recursos ... +**GitLab** + +Basicamente, o GitLab tem os mesmos recursos, só estão organizados de +forma diferente. + +O GitLab concentra os acessos à outras páginas em um meno do lado +esquerdo. Do lado direito pode haver informações extras. O botão para +criar um novo repositório fica no canto superior direit. Ao lado deste +tem botões para ir para página de configurações, sair, ajuda e explorar +o GitLab. + +No menu da direita tem-se acesso aos projetos do usuário, ao projetos +favoritos e aos grupos que parcipa. As extradas *Milestones*, *Issues* e +*Merge request* reúnem as informações sobre todos os projetos do qual o +usuário participa. + +Assim como acontece com outros serviços web, na página inical do projeto +é exibido o arquivo de capa, o `README.md`. Centralizado na página +encontra-se o endereço para clonar o repositório por SSH ou HTTPS. No +menu da direita estão as principais informações sobre o +projeto. *Project* é a página inicial; *Activity* e *Commits* listam a +atividade (predominantemente *commits*); *Files* apresenta diretórios e +arquivos com opção de mudar o ramo. *Network* o estado de +desenvolvimento dos ramos do projeto com uma lista de todos os +*commits*; *Graphs* contém a atividade de cada membro do +projeto. *Milestones* reúne as marcas de milhas do projeto com progresso +de cada uma e em *Issues* pode-se gerenciar os *issues* dos +projetos. *Merge resquests* permite criação e acompanhamento das +requisições de mescla; *Members* faz a gestão da equipe de trabalho como +adição e redefinição dos níveis de acesso; *Labels* são usados para +classificar os *issues* - é comum usar *bug*, *fix*, *review*. *Wiki* +vai para a página Wiki do repositório, útil para divulgação e +documentação; Finalmente, em *Settings* são feitas as configurações +gerais do projeto como definição de nome, descrição, nível de +visibilidade e adição e *Web Hooks*. Nessa mesma página pode-se +renomear, transferir ou remover o projeto. Não usamos a conta no <https://gitlab.com/>, usamos a instalação em servidor próprio disponibilizado pelo c3sl - Centro de Computação @@ -437,3 +528,7 @@ funcionando/instalando sem erros. [GitLab]: https://about.gitlab.com/ [GitHub]: https://github.com/ [GitHub Interprise]: https://enterprise.github.com + +[^1]: http://technologyconversations.com/2015/10/16/github-vs-gitlabs-vs-bitbucket-server-formerly-stash/ +[Digital Ocean]: https://www.digitalocean.com/community/tutorials/how-to-use-the-gitlab-one-click-install-image-to-manage-git-repositories +[GitLab]: https://about.gitlab.com/ diff --git a/plano.md b/plano.md index 896774d47595167b5c07e8ebb588477b7e461ee9..f845458116e4be8386c8ac2f7b93f9ea54d0598b 100644 --- a/plano.md +++ b/plano.md @@ -109,12 +109,27 @@ + Eduardo: **finalizar o trabalho da semana anterior**. Documentar o uso da gitk, gitg e gitx para assim terminar a parte de interfaces de execução e exibição com Git. + + Alessandra: Correções e acréscimos. + Alcides: Concluir os exemplos de rotinas. Revisar o capítulo da Jhenifer. + Daniel: Definir o conteúdo previsto no *cheat sheet* e concluir o capítulo sobre SCV. Revisar o capítulo da Ângela. 4. 2015-11-17: + + Walmes: descrever os mecanísmos de colaboração com interfaces web: + issue, fork e merge request. + + Gabriel: Acréscimos de revisão do capítulo. Revisar os apêndices do + Alcides. + + Ângela: Descrever o fluxo de trabalho do PET. Revisar o capítulo da + Jhenifer. + + Jhenifer: Acrécimos de revisão. Revisão do capítulo da Alessandra. + + Eduardo: Documentar o uso das ferramentas de merge: meld, kdiff3 e + p4merge. + + Alessandra: Acréscismos e revisão. Revisar o capítulo da Ângela. + + Alcides: Acréscismos e revisão. Revisar o capítulo do Gabriel. + + Daniel: **finalizar todo o trabalho da semana anterior**. Concluir + o capítulo sobre Git com o RStudio 5. 2015-11-24: 6. 2015-12-01: 7. 2015-12-08: 8. 2015-12-15: Apostila Git concluída! +