How is EEE doing at MGIT

GitLab: what is it and what can it do?

Developers and programmers today can hardly avoid a version control system (VCS) like GitLab if they want to work agile and efficiently on software or web projects. But what exactly is GitLab? What functions and advantages and disadvantages does the application bring with it?
 

GitLab was created in 2011 by Ukrainian Dmitri Saparoschez in collaboration with Valery Sizov in the programming language Ruby, more precisely Ruby on Rails. After Microsoft bought GitLab's biggest competitor, GitHub, in 2018, numerous users switched to GitLab.

 

GitLab is a Version control system(VCS). It is based entirely on Git, a distributed versioning system that is made available as open source software. Git is by far the most widely used VCS in the world. The main task of the web-based version management: save and document all changes to files and their source code so that they can be traced at any time.

GitLab is particularly interesting for developers and programmers and makes their daily work easier. When using a version control system, several programmers can develop at the same time, for example by working on different features. We at Mittwald also work with GitLab for this very reason. Above all, it helps us with agile and cross-departmental collaboration on various projects.

 

The steady one Versioning ensures that all changes are logged and ensures that work is not lost or accidentally overwritten. Changes made to the code can not only be monitored, but also reversed if necessary.

GitLab is a web-based VCS, but so is that hosted on its own server can be. The projects created there are organized in digital archives called repositories. A Repository contains all components of a project, for example all associated PHP, JavaScript, HTML and CSS files.

All project participants can get a working copy (Working copy) of the repository on your computer (check out). After editing the copy, the files are uploaded (checked in) back to the repository. Means Commit the changes can be added to the repository. GitLab takes care of the documentation of the changes and enables, for example, the Comparability of the versions.

 

That is an essential function Branching, which is particularly easy and quick to do with Git. Branching means that programmers can create a separate branch of work that branches off the main line of development. This can be used as a new context be considered so that in such a branch, for example, a new feature can be worked on without affecting or even damaging the main line.

Features of GitLab at a glance:

  • Code review
  • Bug tracking
  • personal and private branches
  • several Git repositories manageable
  • High availability in the active / active cluster possible
  • Code snippets
  • Access Control
  • Issue tracking
  • Web hooks
  • integrated and free continuous integration / delivery (CI / CD)
  • Wiki

What licenses are there from GitLab?

GitLab is based on one open core business model. In 2013 the extended Enterprise Edition was introduced so that there are now two license models:

 

  • CE: Community Edition
  • EE: Enterprise Edition

The Community Edition is distributed under the MIT license. The Enterprise Edition is based on the Community Edition and consequently uses the same core, but with additional functions. EE is subject to a proprietary license. For both versions, however, all JavaScript code is open source.

Advantages and disadvantages of GitLab

Advantages:

 

  • unlimited private and public repositories
  • Including container registry for Docker image management
  • CI / CD tools are already integrated free of charge
  • easy to use user interface
  • self-organized hosting possible
  • excellent mobile usability
  • numerous statistics on projects are available
  • extensive user and rights management
  • comprehensive wiki-based documentation
  • better safety precautions than the competition

 

Disadvantage:

 

  • Issues cannot be tracked in multiple repositories
  • Servers are less stable than GitHub

With GitLab, programming teams in particular can plan, coordinate, test, deploy and monitor collaborative software and web projects. Everyone involved can securely write and manage the code without disrupting the workflow - regardless of whether it is an agile, waterfall or conversational development method.

 

GitLab offers numerous customization options for build packs up to CI / CD. The entire workflow can be automated if desired. The code is open source in both the community and enterprise versions. Even the free version is very extensive and powerful.

Do you also use GitLab or are you more of an advocate of GitHub? We like to read in the comments from you guys. ;-)

Viktor is an online marketing specialist and particularly pursues the topic of SEO. When he's not blogging about his favorite CMS WordPress, he deals with every topic in order to help agencies and freelancers to a more productive everyday life. In his spare time Viktor runs a few WordPress sites and can often be found behind a book. You can find him in the morning taking a leisurely walk with his Australian Shepherd Watson.