Simplifying submitting Merge Requests

As the usage of Git continues to be a challenge for many students, to an extent, where I needed to spend quite a lot of time explaining how to properly submit your work in a Merge Request [HowTo_MR.pdf]. To save this time and to have the guaranty, that this workflow will be used throughout the entire project, I implemented a One-Button-Solution. In this way all development is done on feature branches, without the need of managing different branches and the only merges on the default branch, that have to be done on the local repositories are fast-forward merges, keeping the resolving of possible conflicts to the person, merging the merge request.



Workflow

Start feature by clicking Start Feature

alt text - the latest state of the default branch is pulled - a new branch is created, switched to and pushed - now one can commit and push as usual alt text

Creating the Merge Request

  • this is still done on GitLab/GitHub/etc.

Checking if the feature is merged

alt text - a git branch <default-branch> --merged | grep <feature-name> is performed - on an empty result the branch is not merged and the UI shows Not merged yet.

alt text alt text - Not merget yet: the user can just continue commiting and pushing - Merged: the user provides a new feature-name and clicks again on Start Feature



TODO:

  • [ ] user tests
  • [ ] change feature-state field to not look like input field
  • [ ] restrict naming of features (no spaces...)
  • [ ] cancel feature option
  • [ ] better UI feedback