Git Source Control Workflows

Git source control must be part of a wider workflow strategy. The workflows must include software releases, versioning, release of hot patches, code sharing and adding of new features.

It is essential to lay a good foundation by setting up a development environment that facilitate this.

The Wooberme case study will shed some light on a strategy that meet these objectives.

Wooberme

Wooberme is an app designed to make Airport transfers easy. The app owner wants initially to deploy the app for customers in and around London.

The backend for frontend (BFF) for Wooberme will be deployed on Nest.yt. The font-end clients are being developed using Xamarin.

The client-end has 3 apps for the administrator, the driver and the rider who wants to be transferred to and from the airport. Having an app for the administrator allows easy to monitoring of operations even while not stationed at a fixed location.

The aim of the app developer is to make use of push notifications to let stakeholders know whenever important events take place in the system.

Git Source Control

The app project has a dedicated private Git repository. A Git repo is installed and setup when an app is installed on Nest.yt. The repository is logically partioned to maintain the different modules of the app.

The Git branches represented by the dark blue boxes are installed by default on the server when the app is configured and deployed.

The light blue boxes represent branches added by the developer. Each branch track and manage Xamarin code projects belonging to the 3 client apps.

The setup allows the developer to maintain both the client and server code in the same repository. This makes code sharing much easier to manage.

The adding of folders to manage parts of the application is done using Nest folders. The Xamarin client code of Wooberme exist in Nest Folders.

The Nest Folder Create command creates a folder in the source folder and a Git branch. The Nest Folder Fetch command fetches an existing folder pushed to the remote earlier.

Gitflow for Workflows

Wooberme uses Gitflow for parallel development, collaboration, release staging and emergency fix workflows. The key benefits of Gitflow is provided here.

The workflows have been made easier with the vscode gitflow plugin. The plugin sets up branch names required when initialized for the current project.

For example, the Nest folder named “Client” will create a number of branches to support the workflows.

  • client-master
  • client-develop
  • client-feature
  • client-hotfixes

Ensure to use the project prefix “client” when setting up the branch names. The attached video demonstrates how the plug-in is installed and initialized.

Code Sharing

The data entity classes are shared between the clients and the server. The obvious advantage is that it helps to avoid code duplication.

Conclusion

Setting up the Git repo and establishing the workflows at the outset is crucial for consistently delivering results.

There are some ideas here I hope will be of some benefit. Respond below or Contact me for any help on the topic.

Further Information