Git and Task Manager

git und task-manager

Git is a widely used open source tool for distributed version control of software. It is a file version control repository used for source code versioning and collaborative development. It is like a collaborative social platform where programmers and companies post their projects for code development; this control system has the function of recording all changes made to a code, storing this information and allowing a programmer to easily and quickly revert to previous versions of an application when needed. This type of system also greatly simplifies the process of sharing a project with a team or other programmers, for example.the importance of GitHub. GitHub was introduced in 2008 and is a web version of Git. The projects on GitHub are mostly open source, but you can make your code private, available only to certain people or create teams.

Git and GitHub are different things. You can have Git for version control only on your hard drive. GitHub is for you if you want to share your code or put it in the cloud. GitHub has all the features of Git and several more additional features listed below:

  • Documentation;
  • Problem tracking;
  • Wikis;
  • Pull requests with comment and code review;
  • Commit history;
  • Email and emoji notifications;
  • Photoshop files can be displayed and compared with previous versions;
  • GitHub pages: Small websites can be created.

GitHub also allows projects to grow with the social use of the tool. Each user on GitHub has their own profile like any other social network, ideal for showcasing their work and contributions to other projects. Project revisions can be discussed publicly, which favours knowledge sharing. Among other things, GitHub also promotes networking between developers.

code

GitLab as a popular GitHub alternative

GitLab is another well-known online service for storing and working with Git repositories and is used by Kenner Soft Services GmbH. The service is based on a database system. It was released three years later than GitHub, which is why the number of its users is smaller than that of GitHub. Nevertheless, the service is used by more than 100,000 projects, companies and organisations, including such corporations as IBM, Sony, Alibaba, NASA, CERN and many others.

As far as the functionality of GitLab is concerned, it offers the following functions:

  • Creation, storage and management of public and private repositories;
  • Organisation of shared access to repositories, management of user and group access rights;
  • Integration with CI systems;
  • Tracking of changes, comments on projects, creation of wiki pages, idea and task boards, integration with third-party software via API, etc;
  • Authentication and authorisation tools, performance analysis and issue tracking, error monitoring and time management, source code management and web-based editing console, support for continuous integration (CI), code testing and quality assurance, repository and container management, vulnerability management and scan dependencies.

GitLab offers two free versions: Community Edition for small teams or personal projects (deployed on the user's local server) and a free cloud version created on a remote hosting server (storage up to 10 GB). There are also two paid versions available: the Enterprise Edition Starter and the Enterprise Edition Premium.

What workflows are there?

The introduction of a version control tool such as Git introduces new challenges and new questions into the development process. Several Git workflows have been published, these are some of them:

Centralised (oder zentralisierter Workflow)

With this approach, no branch of code is created and the developers work directly on the only existing branch, the master. As an advantage, this workflow does not require the team to manage multiple code branches. As a disadvantage, it increases the likelihood of conflicts in the code, as all developers use the same branch of code, which can introduce errors into the system.

Feature branch model

With this approach, the developers have to create a new code branch for each function to be implemented. This means that the merge between the feature and the main branch only takes place once this feature has already completed its development. Therefore, new functions will never be in the master branch without it having been completed.

Forking-Workflow

In this model, each developer has their own repository and the changes are only made in this repository. To integrate your code into the central repository, the developer must execute pull requests. This allows the developers to integrate the produced code without having to make the changes directly in the central repository.

However, only the "manager" of the repository can accept the pull request, which means that the code is actually integrated.

Gitflow-Workflow

There are two types of branches in Gitflow Workflow: Main branches and support branches. The main branches are called Develop and Master. The master branch contains the code that corresponds to the production software. The Develop branch is a branch created from the Master branch and all developers work in this branch. Support branches can be of the feature, release or hotfix type.

Task Manager - Redmine

Redmine is a tool that supports project management and covers the following areas:

  • In the planning processes - when defining activities, estimating the duration of activities, developing schedules.
  • In the monitoring and control processes - in the control of the schedule to show the development of activities; in the management of the project team to show task divisions, responsibilities, productivity; it is also used for the creation of performance reports (change logs and communication logs between teams).

Redmine is a flexible project manager for the web, written on the basis of Ruby on Rails and published under the GPL licence, which can be configured on several platforms and supports several databases. Its key benefits include:

  • Support for several projects,
  • Flexible access and control levels,
  • System for different types of tasks,
  • Calendar diagram,
  • Functionalities such as news, documents and file management,
  • Support for feeds and email notifications,
  • Wiki by project,
  • Forum by project,
  • Timing,
  • Various tool usage reports,
  • Customisable columns according to tasks, time spent, projects, users, etc.

Task Manager and Git are used together to improve the quality of work between teams. programming

How do we realise the collaboration between Git and Redmine?

When the developer receives a task via Task Manager (Redmine), he uses a console utility that enables a fixed workflow to be followed on all projects by all programmers. This console utility is a kind of quality assurance that all employees follow the standardised work process.

The console utility automatically creates a new branch to the corresponding task and ensures all stages of the code review where the developers or testers are involved. Each task in Redmine is therefore assigned a separate branch in GitLab (i.e. each feature is developed in a separate branch), each task is subject to review and published via the Release Manager.

This collaboration between Redmine and GitLab promotes the speed and automation of processes on the one hand and workflow control on the other, so that all tasks and processes comply with uniform quality standards.

You can read about the code review and testing process in our other articles.

Our agency Kenner Soft Services GmbH pays a great deal of attention to the quality of the services provided. We check everything very thoroughly and carefully in order to deliver the best result to the customer.