O que é o Gitlab?

Vamos considerar um exemplo simples: você está trabalhando em um grupo de projeto em um trabalho empírico e também escrevendo código. Vocês chegaram a uma versão final do script e agora estão fazendo uma revisão final.

Para isso, A compartilha a versão final real com B, C, D. C está muito empolgado e corrige em um ponto e envia outra versão final de volta para A, B e D. D encontra outro erro e revisa a versão final de C e a envia de volta para A, B e C. Enquanto isso, B está um pouco confuso e edita a primeira versão final de A e a envia para A, C e D.

Apenas lendo o texto, deve haver um caos em sua mente agora e você provavelmente está familiarizado com isso em trabalhos em grupo. Na imagem abaixo, tudo isso é representado graficamente.

Fluxo da versão final
Fluxo da versão final

O que fica claro aqui é que (especialmente, mas não apenas) no final de um projeto, existem maneiras mais elegantes de compartilhar arquivos do que por e-mail ou por servidores de nuvem (como Hessenbox). Mesmo com servidores de nuvem como Hessenbox ou Dropbox, o caos não pode ser totalmente evitado, pois a edição síncrona muitas vezes causa problemas. E é exatamente aí que o Gitlab entra em ação para nós.

Gitlab é uma distribuição do git (junto com, por exemplo, github), que é utilizada tanto no mundo dos negócios quanto na ciência. Gitlab oferece um fluxo de trabalho abrangente, mas nos limitaremos ao essencial (compartilhamento e edição de arquivos de texto). No entanto, é útil ter uma introdução ao Gitlab aqui, pois é amplamente utilizado em projetos (de TI) por muitas empresas.

Em nossa configuração, o objetivo é rastrear alterações em arquivos baseados em texto usando o gitlab, especificamente nos scripts R (.R). As pessoas podem trabalhar nos arquivos simultaneamente e não há grandes conflitos como geralmente ocorre na Hessenbox, e todas as alterações são salvas globalmente, são rastreáveis e podem ser disponibilizadas para todos. Portanto, é a ferramenta perfeita para trabalhar em conjunto e colaborativamente em um projeto (como a entrega em grupo no exercício)! Para entender melhor: você edita os arquivos apenas localmente em seu computador ou no RStudio e, depois de terminar, libera suas alterações para que os outros também possam vê-las. Como exatamente esse processo funciona, você descobrirá no final deste capítulo.

Vamos lá para a distribuição da JLU do gitlab!